Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
        public void RequestAuthTokenTesPlexSignInFail()
        {
            var browser = new Browser(Bootstrapper);

            var result = browser.Post("/admin/requestauth", with =>
            {
                with.HttpRequest();
                with.Header("Accept", "application/json");
                with.FormValue("username", "Badusername");
                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(false));
            Assert.That(body.Message, Is.Not.Empty);

            PlexMock.Verify(x => x.SignIn("Badusername", "Password1"), Times.Once);
            AuthMock.Verify(x => x.GetSettings(), Times.Never);
            AuthMock.Verify(x => x.SaveSettings(It.IsAny <AuthenticationSettings>()), Times.Never);
        }
        public void GetUsersTokenIsNull()
        {
            AuthMock.Setup(x => x.GetSettings()).Returns(new AuthenticationSettings());
            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.Never);
            AuthMock.Verify(x => x.GetSettings(), Times.Once);
        }
        public void LoginWithoutAuthentication()
        {
            var expectedSettings = new AuthenticationSettings {
                UserAuthentication = false, PlexAuthToken = "abc"
            };

            AuthMock.Setup(x => x.GetSettings()).Returns(expectedSettings);

            var bootstrapper = new ConfigurableBootstrapper(with =>
            {
                with.Module <UserLoginModule>();
                with.Dependency(AuthMock.Object);
                with.Dependency(PlexMock.Object);
                with.Dependency(PlexRequestMock.Object);
                with.RootPathProvider <TestRootPathProvider>();
            });

            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.OK, Is.EqualTo(result.StatusCode));
            Assert.That(result.Context.Request.Session[SessionKeys.UsernameKey], Is.EqualTo("abc"));

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

            Assert.That(body.Result, Is.EqualTo(true));
            AuthMock.Verify(x => x.GetSettings(), 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);
        }