Пример #1
0
        public void GetUsersSuccessfully()
        {
            var users = new PlexFriends {
                User = new[] { new UserFriends {
                                   Title = "abc2"
                               }, }
            };

            PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(users);
            var browser = new Browser(Bootstrapper);

            var result = browser.Get("/admin/getusers", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("username", "Username1");
                with.FormValue("password", "Password1");
            });

            Assert.That(HttpStatusCode.OK, Is.EqualTo(result.StatusCode));


            var body = JsonConvert.DeserializeObject <JObject>(result.Body.AsString());
            var user = body["users"];

            Assert.That(body, Is.Not.Null);
            Assert.That(user.ToString().Contains("abc"), Is.True);

            PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Once);
        }
Пример #2
0
        public void LoginWithLandingPageBefore()
        {
            var expectedSettings = new AuthenticationSettings {
                UserAuthentication = false
            };

            LandingPageMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new LandingPageSettings {
                BeforeLogin = true, Enabled = true
            });
            AuthMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(expectedSettings);

            Bootstrapper.WithSession(new Dictionary <string, object>());

            var browser = new Browser(Bootstrapper);
            var result  = browser.Post("/userlogin", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("Username", "abc");
            });

            Assert.That(HttpStatusCode.SeeOther, Is.EqualTo(result.StatusCode));
            Assert.That(result.Context.Request.Session[SessionKeys.UsernameKey], Is.EqualTo("abc"));

            Assert.That(result.Headers.Contains(new KeyValuePair <string, string>("Location", "http://www.searchindex.com/"))); // Redirect header
            AuthMock.Verify(x => x.GetSettingsAsync(), Times.Once);
            PlexMock.Verify(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()), Times.Never);
            PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Never);
        }
Пример #3
0
        public void LoginWithoutAuthenticationWithEmptyUsername()
        {
            var expectedSettings = new AuthenticationSettings {
                UserAuthentication = false
            };

            AuthMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(expectedSettings);


            Bootstrapper.WithSession(new Dictionary <string, object>());

            var browser = new Browser(Bootstrapper);
            var result  = browser.Post("/userlogin", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("Username", string.Empty);
            });

            Assert.That(HttpStatusCode.SeeOther, Is.EqualTo(result.StatusCode));


            Assert.That(result.Headers.Contains(new KeyValuePair <string, string>("Location", "http://www.userloginindex.com/"))); // Redirect header
            AuthMock.Verify(x => x.GetSettingsAsync(), Times.Never);
            PlexMock.Verify(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()), Times.Never);
            PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Never);
        }
        public void GetUsersReturnsNoUsers()
        {
            var users = new PlexFriends();

            PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(users);
            var browser = new Browser(Bootstrapper);

            var result = browser.Get("/admin/getusers", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("username", "Username1");
                with.FormValue("password", "Password1");
            });

            Assert.That(HttpStatusCode.OK, Is.EqualTo(result.StatusCode));

            var body = JsonConvert.DeserializeObject <string>(result.Body.AsString());

            Assert.That(body, Is.Not.Null);
            Assert.That(string.IsNullOrWhiteSpace(body), Is.True);

            PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Once);
            AuthMock.Verify(x => x.GetSettings(), Times.Once);
        }
 public void InvalidSettings()
 {
     Checker.CheckAndUpdateAll();
     PlexMock.Verify(x => x.GetLibrary(It.IsAny <string>(), It.IsAny <Uri>(), It.IsAny <string>()), Times.Never);
     PlexMock.Verify(x => x.GetAccount(It.IsAny <string>()), Times.Never);
     PlexMock.Verify(x => x.GetLibrarySections(It.IsAny <string>(), It.IsAny <Uri>()), Times.Never);
     PlexMock.Verify(x => x.GetStatus(It.IsAny <string>(), It.IsAny <Uri>()), Times.Never);
     PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Never);
 }
Пример #6
0
        public void LoginWithOwnerUsernameAndPasswordSuccessfully()
        {
            var expectedSettings = new AuthenticationSettings {
                UserAuthentication = true, UsePassword = true
            };
            var plexFriends = new PlexFriends
            {
                User = new[]
                {
                    new UserFriends()
                }
            };
            var plexAuth = new PlexAuthentication
            {
                user = new User
                {
                    authentication_token = "abc",
                    username             = "******"
                }
            };

            var account = new PlexAccount {
                Username = "******"
            };

            AuthMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(expectedSettings);
            PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(plexFriends);
            PlexMock.Setup(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>())).Returns(plexAuth);
            PlexMock.Setup(x => x.GetAccount(It.IsAny <string>())).Returns(account);

            Bootstrapper.WithSession(new Dictionary <string, object>());

            var browser = new Browser(Bootstrapper);
            var result  = browser.Post("/userlogin", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("Username", "jamie");
                with.FormValue("Password", "abc");
            });

            Assert.That(HttpStatusCode.SeeOther, Is.EqualTo(result.StatusCode));
            Assert.That(result.Headers.Contains(new KeyValuePair <string, string>("Location", "http://www.searchindex.com/"))); // Redirect header
            AuthMock.Verify(x => x.GetSettingsAsync(), Times.Once);
            PlexMock.Verify(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()), Times.Once);
            PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Never);
        }
Пример #7
0
        public void RequestAuthTokenTestNewSettings()
        {
            var browser = new Browser(Bootstrapper);

            var result = browser.Post("/admin/requestauth", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("username", "Username1");
                with.FormValue("password", "Password1");
            });

            Assert.That(HttpStatusCode.OK, Is.EqualTo(result.StatusCode));

            var body = JsonConvert.DeserializeObject <JsonResponseModel>(result.Body.AsString());

            Assert.That(body.Result, Is.EqualTo(true));
            PlexMock.Verify(x => x.SignIn("Username1", "Password1"), Times.Once);
            PlexSettingsMock.Verify(x => x.SaveSettings(It.IsAny <PlexSettings>()), Times.Once);
        }
Пример #8
0
        public void LoginWithUsernameUnSuccessfully()
        {
            var expectedSettings = new AuthenticationSettings {
                UserAuthentication = true
            };
            var plexFriends = new PlexFriends
            {
                User = new[]
                {
                    new UserFriends
                    {
                        Username = "******",
                    },
                }
            };

            AuthMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(expectedSettings);
            PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(plexFriends);
            PlexMock.Setup(x => x.GetAccount(It.IsAny <string>())).Returns(new PlexAccount());

            Bootstrapper.WithSession(new Dictionary <string, object>());

            var browser = new Browser(Bootstrapper);

            var result = browser.Post("/userlogin", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("Username", "abc");
            });


            Assert.That(HttpStatusCode.SeeOther, Is.EqualTo(result.StatusCode));
            Assert.That(result.Context.Request.Session[SessionKeys.UsernameKey], Is.Null);

            Assert.That(result.Headers.Contains(new KeyValuePair <string, string>("Location", "http://www.userloginindex.com/"))); // Redirect header
            AuthMock.Verify(x => x.GetSettingsAsync(), Times.Once);
            PlexMock.Verify(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()), Times.Never);
            PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Once);
        }