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); }
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); }