diff --git a/.gitignore b/.gitignore index 3ef0888..6f016b8 100644 --- a/.gitignore +++ b/.gitignore @@ -217,3 +217,97 @@ target/test-classes/cucumber/feature/GetTweet\.feature target/test-classes/cucumber/feature/GetUser\.feature target/failsafe-reports/failsafe-summary\.xml + +target/kwetter/403\.xhtml + +target/kwetter/404\.xhtml + +target/kwetter/500\.xhtml + +target/kwetter/admin/index\.xhtml + +target/kwetter/admin/logout\.xhtml + +target/kwetter/admin/permissions\.xhtml + +target/kwetter/admin/roles\.xhtml + +target/kwetter/admin/tweets\.xhtml + +target/kwetter/admin/users\.xhtml + +target/kwetter/includes/menu\.xhtml + +target/kwetter/includes/top-bar\.xhtml + +target/kwetter/login\.xhtml + +target/kwetter/resources/css/prism\.css + +target/kwetter/resources/css/starter\.css + +target/kwetter/resources/js/prism\.js + +target/kwetter/resources/js/starter\.js + +target/kwetter/WEB-INF/classes/admin_de\.properties + +target/kwetter/WEB-INF/classes/admin_nl\.properties + +target/kwetter/WEB-INF/classes/admin-config\.properties + +target/kwetter/WEB-INF/classes/admin\.properties + +target/kwetter/WEB-INF/classes/kwetter\.properties + +target/kwetter/WEB-INF/classes/META-INF/beans\.xml + +target/kwetter/WEB-INF/classes/META-INF/glassfish-web\.xml + +target/kwetter/WEB-INF/classes/META-INF/persistence\.xml + +target/kwetter/WEB-INF/classes/privateKey\.pem + +target/kwetter/WEB-INF/classes/publicKey\.pem + +target/kwetter/WEB-INF/faces-config\.xml + +target/kwetter/WEB-INF/glassfish-web\.xml + +target/kwetter/WEB-INF/templates/admin-template\.xhtml + +target/kwetter/WEB-INF/templates/template\.xhtml + +target/maven-archiver/pom\.properties + +target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles\.lst + +target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles\.lst + +target/surefire-reports/2019-05-06T12-17-11_762-jvmRun1\.dump + +target/surefire-reports/2019-05-06T12-17-11_762\.dumpstream + +target/surefire-reports/com\.nscharrenberg\.kwetter\.domain\.TweetTest\.txt + +target/surefire-reports/com\.nscharrenberg\.kwetter\.domain\.UserTest\.txt + +target/surefire-reports/com\.nscharrenberg\.kwetter\.integration\.PermissionTest\.txt + +target/surefire-reports/com\.nscharrenberg\.kwetter\.service\.PermissionServiceTest\.txt + +target/surefire-reports/com\.nscharrenberg\.kwetter\.service\.RoleServiceTest\.txt + +target/surefire-reports/com\.nscharrenberg\.kwetter\.service\.TweetServiceTest\.txt + +target/surefire-reports/TEST-com\.nscharrenberg\.kwetter\.domain\.TweetTest\.xml + +target/surefire-reports/TEST-com\.nscharrenberg\.kwetter\.domain\.UserTest\.xml + +target/surefire-reports/TEST-com\.nscharrenberg\.kwetter\.integration\.PermissionTest\.xml + +target/surefire-reports/TEST-com\.nscharrenberg\.kwetter\.service\.PermissionServiceTest\.xml + +target/surefire-reports/TEST-com\.nscharrenberg\.kwetter\.service\.RoleServiceTest\.xml + +target/surefire-reports/TEST-com\.nscharrenberg\.kwetter\.service\.TweetServiceTest\.xml diff --git a/Kwetter.iml b/Kwetter.iml index 8efa959..2bd00b2 100644 --- a/Kwetter.iml +++ b/Kwetter.iml @@ -41,8 +41,6 @@ - - @@ -62,7 +60,7 @@ - + @@ -93,6 +91,7 @@ + @@ -131,66 +130,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/angular/src/app/_components/navbar/navbar.component.html b/angular/src/app/_components/navbar/navbar.component.html index cf8d001..e544417 100644 --- a/angular/src/app/_components/navbar/navbar.component.html +++ b/angular/src/app/_components/navbar/navbar.component.html @@ -25,13 +25,14 @@ - diff --git a/angular/src/app/pages/auth/login/login.component.html b/angular/src/app/pages/auth/login/login.component.html index 70d4f9d..c26cae6 100644 --- a/angular/src/app/pages/auth/login/login.component.html +++ b/angular/src/app/pages/auth/login/login.component.html @@ -21,7 +21,7 @@
Sign In
Password is required
- +
Register a new account diff --git a/angular/src/app/pages/home/home.component.html b/angular/src/app/pages/home/home.component.html index f743943..1dee2cf 100644 --- a/angular/src/app/pages/home/home.component.html +++ b/angular/src/app/pages/home/home.component.html @@ -60,7 +60,7 @@

{{loggedIn.username}}

-

@{{loggedIn.username}}

+

@{{loggedIn.username}}

 {{loggedIn.website}}

{{ address }}

{{loggedIn.email}}

@@ -102,7 +102,7 @@

Who to follow

RefreshVie diff --git a/login_screenshot.png b/login_screenshot.png new file mode 100644 index 0000000..fbc8812 Binary files /dev/null and b/login_screenshot.png differ diff --git a/login_success_screenshot.png b/login_success_screenshot.png new file mode 100644 index 0000000..4117033 Binary files /dev/null and b/login_success_screenshot.png differ diff --git a/pom.xml b/pom.xml index 038c67f..4331aab 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 kwetter @@ -17,20 +17,8 @@ UTF-8 1.8 1.8 - 1.1.15.Final - - - - - org.jboss.arquillian - arquillian-bom - ${version.org.jboss.arquillian} - pom - import - - - + javax @@ -48,11 +36,6 @@ javax.security.enterprise 1.0 - - javax.mail - mail - 1.5.0-b01 - org.eclipse.persistence eclipselink @@ -174,39 +157,16 @@ 2.8.5 - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven - test + org.seleniumhq.selenium + selenium-java + 3.141.0 - org.jboss.arquillian.junit - arquillian-junit-container - test - - - org.slf4j - slf4j-simple - 1.6.4 - test - - - com.github.tomakehurst - wiremock-standalone - 2.12.0 - test - - - com.jayway.restassured - rest-assured - 2.9.0 - test - - - fish.payara.arquillian - arquillian-payara-server-4-embedded - 1.0.Beta2 - test + commons-io + commons-io + 2.6 + @@ -218,41 +178,45 @@ src/main/resources + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + ${webdriver.chrome} + + + + + maven-war-plugin + 3.2.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - - org.apache.maven.plugins - maven-war-plugin - 3.2.0 - - false - - - - - - - - - - - - - - - - - - - - - maven-surefire-plugin - 2.22.1 - org.apache.maven.plugins @@ -265,52 +229,6 @@ - - org.apache.maven.plugins - maven-failsafe-plugin - 2.20.1 - - - - integration-test - verify - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/selenium/chromedriver.exe b/selenium/chromedriver.exe new file mode 100644 index 0000000..6abaee3 Binary files /dev/null and b/selenium/chromedriver.exe differ diff --git a/src/main/java/com/nscharrenberg/kwetter/beans/LogonBean.java b/src/main/java/com/nscharrenberg/kwetter/beans/LogonBean.java index e6f6781..9de7d17 100644 --- a/src/main/java/com/nscharrenberg/kwetter/beans/LogonBean.java +++ b/src/main/java/com/nscharrenberg/kwetter/beans/LogonBean.java @@ -7,7 +7,6 @@ import org.omnifaces.util.Messages; import com.nscharrenberg.kwetter.responses.ObjectResponse; import com.nscharrenberg.kwetter.service.UserService; -import com.nscharrenberg.kwetter.utils.EmailUtil; import javax.annotation.Resource; import javax.enterprise.context.SessionScoped; @@ -17,12 +16,6 @@ import javax.faces.context.FacesContext; import javax.inject.Inject; import javax.inject.Named; -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; import javax.security.enterprise.AuthenticationStatus; import javax.security.enterprise.SecurityContext; import javax.security.enterprise.authentication.mechanism.http.AuthenticationParameters; @@ -55,14 +48,11 @@ public class LogonBean extends AdminSession implements Serializable { @Inject private UserService userService; - @Resource(name = "java/mail/kwetter") - private Session mailSession; - private String username; private String password; private boolean remember; - public void login() throws IOException, MessagingException { + public void login() throws IOException { if(continueAuthentication() == null) { Messages.addError(null, "Login failed"); externalContext.getFlash().setKeepMessages(true); @@ -147,22 +137,4 @@ public String getCurrentUser() { return ""; } } - - public void send() { - mailSession.setDebug(true); - Message message = new MimeMessage(mailSession); - - try { - System.out.println("Send Start"); - message.setSubject("Welcome"); - message.setRecipient(Message.RecipientType.TO, new InternetAddress("nscharrenberg@hotmail.com")); - message.setText("Example Message"); - - Transport.send(message); - } catch (MessagingException | NoClassDefFoundError e) { - e.printStackTrace(); - } - - System.out.println("Send Finished"); - } } diff --git a/src/main/java/com/nscharrenberg/kwetter/domain/User.java b/src/main/java/com/nscharrenberg/kwetter/domain/User.java index 5eeaab0..eceea34 100644 --- a/src/main/java/com/nscharrenberg/kwetter/domain/User.java +++ b/src/main/java/com/nscharrenberg/kwetter/domain/User.java @@ -72,6 +72,16 @@ public class User { @OneToMany(mappedBy = "author", fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH, CascadeType.REFRESH}, orphanRemoval = true) private Set tweets; + @ManyToMany( + cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH, CascadeType.REFRESH}, fetch = FetchType.LAZY + ) + @JoinTable( + name = "mentions", + joinColumns = @JoinColumn(name = "tweet_id"), + inverseJoinColumns = @JoinColumn(name = "user_id") + ) + private Set mentions; + public User() { this.followers = new HashSet<>(); this.following = new HashSet<>(); @@ -223,4 +233,12 @@ public String getAvatar() { public void setAvatar(String avatar) { this.avatar = avatar; } + + public Set getMentions() { + return mentions; + } + + public void setMentions(Set mentions) { + this.mentions = mentions; + } } diff --git a/src/main/java/com/nscharrenberg/kwetter/dtos/tweets/TweetCleanDto.java b/src/main/java/com/nscharrenberg/kwetter/dtos/tweets/TweetCleanDto.java index fec2999..3e3c3a5 100644 --- a/src/main/java/com/nscharrenberg/kwetter/dtos/tweets/TweetCleanDto.java +++ b/src/main/java/com/nscharrenberg/kwetter/dtos/tweets/TweetCleanDto.java @@ -9,4 +9,36 @@ public class TweetCleanDto { private String message; private Date createdAt; private UserCleanDto author; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public UserCleanDto getAuthor() { + return author; + } + + public void setAuthor(UserCleanDto author) { + this.author = author; + } } diff --git a/src/main/java/com/nscharrenberg/kwetter/dtos/users/UserDto.java b/src/main/java/com/nscharrenberg/kwetter/dtos/users/UserDto.java index aeb5173..641b8ad 100644 --- a/src/main/java/com/nscharrenberg/kwetter/dtos/users/UserDto.java +++ b/src/main/java/com/nscharrenberg/kwetter/dtos/users/UserDto.java @@ -20,6 +20,7 @@ public class UserDto { private Set followers; private Set following; private Set tweets; + private Set mentions; public Integer getId() { return id; @@ -132,4 +133,12 @@ public String getAvatar() { public void setAvatar(String avatar) { this.avatar = avatar; } + + public Set getMentions() { + return mentions; + } + + public void setMentions(Set mentions) { + this.mentions = mentions; + } } diff --git a/src/main/java/com/nscharrenberg/kwetter/repository/jpa/TweetServiceJPAImpl.java b/src/main/java/com/nscharrenberg/kwetter/repository/jpa/TweetServiceJPAImpl.java index 093ba82..ac782d7 100644 --- a/src/main/java/com/nscharrenberg/kwetter/repository/jpa/TweetServiceJPAImpl.java +++ b/src/main/java/com/nscharrenberg/kwetter/repository/jpa/TweetServiceJPAImpl.java @@ -177,6 +177,7 @@ public List getTimeLine(User user, Object... options) { for(User u : user.getFollowing()) { tweets.addAll(getTweetsByUser(u)); } + tweets.addAll(user.getMentions()); tweets.sort(Comparator.comparing(Tweet::getCreatedAt).reversed()); diff --git a/src/main/java/com/nscharrenberg/kwetter/utils/EmailUtil.java b/src/main/java/com/nscharrenberg/kwetter/utils/EmailUtil.java deleted file mode 100644 index dd62989..0000000 --- a/src/main/java/com/nscharrenberg/kwetter/utils/EmailUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.nscharrenberg.kwetter.utils; - -import javax.annotation.Resource; -import javax.ejb.Stateless; -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; -import java.io.Serializable; - -@Stateless - -public class EmailUtil implements Serializable { - @Resource(name = "java/mail/kwetter") - private Session mailSession; - - public void send() throws MessagingException { - Message message = new MimeMessage(mailSession); - - message.setSubject("Welcome"); - message.setRecipient(Message.RecipientType.TO, new InternetAddress("nscharrenberg@hotmail.com")); - message.setContent("

Hi You!

How are you doing?

", "text/html; charset=utf-8"); - - Transport.send(message); - } -} diff --git a/src/main/test/com/nscharrenberg/kwetter/integration/PermissionTest.java b/src/main/test/com/nscharrenberg/kwetter/integration/PermissionTest.java deleted file mode 100644 index 451e550..0000000 --- a/src/main/test/com/nscharrenberg/kwetter/integration/PermissionTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.nscharrenberg.kwetter.integration; - -import com.github.tomakehurst.wiremock.client.WireMock; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.containing; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import com.jayway.restassured.RestAssured; -import static com.jayway.restassured.RestAssured.given; -import com.jayway.restassured.http.ContentType; -import com.jayway.restassured.parsing.Parser; -import java.io.File; -import java.net.URL; -import org.hamcrest.Matchers; -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit.Arquillian; -import org.jboss.arquillian.junit.InSequence; -import org.jboss.arquillian.test.api.ArquillianResource; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.jboss.shrinkwrap.resolver.api.maven.Maven; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(Arquillian.class) -public class PermissionTest { - private final WireMock wiremock = new WireMock(8888); - - @Deployment(testable = false) - public static WebArchive createDeployment() { - File[] files = Maven.resolver() - .loadPomFromFile("pom.xml") - .importRuntimeDependencies() - .resolve() - .withTransitivity() - .asFile(); - return ShrinkWrap.create(WebArchive.class) - .addPackages(true, "com.nscharrenberg.kwetter") - .addAsWebInfResource(new File("src/main/resources/META-INF/beans.xml")) - .addAsLibraries(files); - } - - @ArquillianResource - private URL contextPath; - - @Test - @InSequence(1) - public void testGetUsers() { - RestAssured.registerParser("text/plain", Parser.TEXT); - given() - .when() - .get(contextPath.toString() + "api/users") - .then() - .statusCode(200) - .contentType(ContentType.JSON); - } -} diff --git a/src/main/test/com/nscharrenberg/kwetter/selenium/setups/LoginPage.java b/src/main/test/com/nscharrenberg/kwetter/selenium/setups/LoginPage.java new file mode 100644 index 0000000..a5a0b56 --- /dev/null +++ b/src/main/test/com/nscharrenberg/kwetter/selenium/setups/LoginPage.java @@ -0,0 +1,38 @@ +package com.nscharrenberg.kwetter.selenium.setups; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +public class LoginPage { + private static final String USERNAME_FIELD = "username"; + private static final String PASSWORD_FIELD = "password"; + private static final String LOGIN_BUTTON_FIELD = "loginBtn"; + private static final int TIMEOUT_SECONDS = 20; + + public String login(WebDriver driver, String username, String password) { + WebDriverWait wait = new WebDriverWait(driver, TIMEOUT_SECONDS); + + // Set Username Field + WebElement usernameElement = wait.until(ExpectedConditions.elementToBeClickable(By.id(USERNAME_FIELD))); + usernameElement.sendKeys(username); + + WebElement passwordElement = wait.until(ExpectedConditions.elementToBeClickable(By.id(PASSWORD_FIELD))); + passwordElement.sendKeys(password); + + WebElement loginButtonElement = wait.until(ExpectedConditions.elementToBeClickable(By.id(LOGIN_BUTTON_FIELD))); + loginButtonElement.click(); + +// WebElement loginPage = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("usernameTag"))); +// wait.until(ExpectedConditions.or( +// ExpectedConditions.presenceOfElementLocated(By.id("usernameTag")), +// ExpectedConditions.presenceOfElementLocated(By.className("alert-danger")) +// )); + + WebElement loginPage =wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[contains(@id,'usernameTag') or (contains(@class,'alert-danger'))]"))); + + return loginPage.getText(); + } +} diff --git a/src/main/test/com/nscharrenberg/kwetter/selenium/tests/LoginSeleniumTests.java b/src/main/test/com/nscharrenberg/kwetter/selenium/tests/LoginSeleniumTests.java new file mode 100644 index 0000000..6171c5a --- /dev/null +++ b/src/main/test/com/nscharrenberg/kwetter/selenium/tests/LoginSeleniumTests.java @@ -0,0 +1,41 @@ +package com.nscharrenberg.kwetter.selenium.tests; + +import com.nscharrenberg.kwetter.selenium.setups.LoginPage; +import com.nscharrenberg.kwetter.selenium.utils.SeleniumTestBase; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +public class LoginSeleniumTests extends SeleniumTestBase { + private LoginPage loginPage = new LoginPage(); + + @Test + public void login_valid_user() throws IOException { + String loginUrl = WEBSITE_HOST + "auth/login"; + String username = "admin"; + String password = "password123"; + + webDriver.get(loginUrl); + screenshotHelper.saveScreenshot("login_for_success_test_screenshot.png"); + String nextPage = loginPage.login(webDriver, username, password); + screenshotHelper.saveScreenshot("login_success_screenshot.png"); + assertEquals("@" + username, nextPage); + } + + @Test + public void login_invalid_user() throws IOException { + String loginUrl = WEBSITE_HOST + "auth/login"; + String username = "admin123"; + String password = "wrongpassword"; + + webDriver.get(loginUrl); + screenshotHelper.saveScreenshot("login_for_failed_test_screenshot.png"); + String nextPage = loginPage.login(webDriver, username, password); + screenshotHelper.saveScreenshot("login_invalid_screenshot.png"); + assertNotEquals("@" + username, nextPage); + assertEquals("Wrong username or password", nextPage); + } +} diff --git a/src/main/test/com/nscharrenberg/kwetter/selenium/utils/ScreenshotHelper.java b/src/main/test/com/nscharrenberg/kwetter/selenium/utils/ScreenshotHelper.java new file mode 100644 index 0000000..f2abc51 --- /dev/null +++ b/src/main/test/com/nscharrenberg/kwetter/selenium/utils/ScreenshotHelper.java @@ -0,0 +1,23 @@ +package com.nscharrenberg.kwetter.selenium.utils; + +import org.apache.commons.io.FileUtils; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; + +import java.io.File; +import java.io.IOException; + +public class ScreenshotHelper { + private WebDriver webDriver; + + public ScreenshotHelper(WebDriver webDriver) { + super(); + this.webDriver = webDriver; + } + + public void saveScreenshot(String screenshotFileName) throws IOException { + File screenshot = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE); + FileUtils.copyFile(screenshot, new File("tests_results/" + screenshotFileName)); + } +} diff --git a/src/main/test/com/nscharrenberg/kwetter/selenium/utils/SeleniumTestBase.java b/src/main/test/com/nscharrenberg/kwetter/selenium/utils/SeleniumTestBase.java new file mode 100644 index 0000000..e29ffeb --- /dev/null +++ b/src/main/test/com/nscharrenberg/kwetter/selenium/utils/SeleniumTestBase.java @@ -0,0 +1,40 @@ +package com.nscharrenberg.kwetter.selenium.utils; + +import org.junit.After; +import org.junit.Before; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; + +import java.io.IOException; + +public class SeleniumTestBase { + protected static final String WEBSITE_HOST = "http://localhost:4200/"; + + protected WebDriver webDriver; + protected ScreenshotHelper screenshotHelper; + + public SeleniumTestBase() { + super(); + } + + @Before + public void setup() { + String projectLocation = System.getProperty("user.dir"); + System.setProperty("webdriver.chrome.driver", projectLocation + "\\selenium\\chromedriver.exe"); + + ChromeOptions options = new ChromeOptions(); + options.addArguments("--incognito"); + + webDriver = new ChromeDriver(options); + screenshotHelper = new ScreenshotHelper(webDriver); + + // Maximize Window + webDriver.manage().window().maximize(); + } + + @After + public void close() throws IOException { + webDriver.close(); + } +} diff --git a/target/kwetter/WEB-INF/web.xml b/target/kwetter/WEB-INF/web.xml index 5e2a871..e85d745 100644 --- a/target/kwetter/WEB-INF/web.xml +++ b/target/kwetter/WEB-INF/web.xml @@ -61,7 +61,6 @@ /admin/index.xhtml /admin/tweets.xhtml /admin/users.xhtml - /javax.faces.resource/* moderator diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 2b3eb4a..7744438 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -20,7 +20,6 @@ com\nscharrenberg\kwetter\controllers\UserController.class com\nscharrenberg\kwetter\service\PermissionService.class com\nscharrenberg\kwetter\beans\RoleBean.class com\nscharrenberg\kwetter\beans\LogonBean.class -com\nscharrenberg\kwetter\utils\EmailUtil.class com\nscharrenberg\kwetter\domain\User.class com\nscharrenberg\kwetter\dtos\users\CreateUserRequestObject.class com\nscharrenberg\kwetter\dtos\roles\CreateRoleRequestObject.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index e28e088..d71de81 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -22,7 +22,6 @@ D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\k D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\repository\collection\TweetServiceCollImpl.java D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\dtos\permissions\CreatePermissionRequestObject.java D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\exceptions\CreationFailedException.java -D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\utils\EmailUtil.java D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\utils\DetailMessage.java D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\beans\UserBean.java D:\NScha\Synology Cloud\School\S6\JEA6\kwetter\src\main\java\com\nscharrenberg\kwetter\repository\interfaces\PermissionRepository.java diff --git a/tests_results/login_for_failed_test_screenshot.png b/tests_results/login_for_failed_test_screenshot.png new file mode 100644 index 0000000..2dd18a1 Binary files /dev/null and b/tests_results/login_for_failed_test_screenshot.png differ diff --git a/tests_results/login_for_success_test_screenshot.png b/tests_results/login_for_success_test_screenshot.png new file mode 100644 index 0000000..1e7fb96 Binary files /dev/null and b/tests_results/login_for_success_test_screenshot.png differ diff --git a/tests_results/login_invalid_screenshot.png b/tests_results/login_invalid_screenshot.png new file mode 100644 index 0000000..ef6ec79 Binary files /dev/null and b/tests_results/login_invalid_screenshot.png differ diff --git a/tests_results/login_screenshot.png b/tests_results/login_screenshot.png new file mode 100644 index 0000000..1e7fb96 Binary files /dev/null and b/tests_results/login_screenshot.png differ diff --git a/tests_results/login_success_screenshot.png b/tests_results/login_success_screenshot.png new file mode 100644 index 0000000..031dff1 Binary files /dev/null and b/tests_results/login_success_screenshot.png differ