Browse Source

Merge branch 'newDevBranch'

remotes/origin/hotfix/client/improve-chat-window-appearence
Richard Schmidt 11 months ago
parent
commit
5d57a887f6
  1. 13
      src/main/java/LoginGUI.java
  2. 14
      src/main/java/SignUpGUI.java
  3. 12
      src/test/java/CreateUserTest.java
  4. 11
      src/test/java/LoginGUITest.java
  5. 25
      src/test/java/SignUpGUITest.java

13
src/main/java/LoginGUI.java

@ -35,7 +35,6 @@ public class LoginGUI extends JFrame implements ActionListener {
return signUpButton;
}
public LoginGUI() {
setTitle("Login");
setSize(300, 220);
@ -98,27 +97,23 @@ public class LoginGUI extends JFrame implements ActionListener {
}else if (e.getSource() == signUpButton) {
SignUpGUI signUpGUI = new SignUpGUI();
signUpGUI.setVisible(true);
}
}
private void login() {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
boolean stayLoggedIn = stayLoggedInCheckbox.isSelected(); // Get checkbox state
if (authenticateUser(username, password)) {
JOptionPane.showMessageDialog(this, "Login successful!");
// Perform actions after successful login
dispose();
} else {
JOptionPane.showMessageDialog(this, "Invalid username or password", "Login Error", JOptionPane.ERROR_MESSAGE);
}
}
private void updateStayLoggedIn(String username, boolean stayLoggedIn) {
// Update stayLoggedIn in the JSON file for the user
private void updateStayLoggedIn(String username, boolean stayLoggedIn) {
CreateUser.updateStayLoggedIn("user.json", username, stayLoggedIn);
}
@ -128,16 +123,14 @@ public class LoginGUI extends JFrame implements ActionListener {
if (userList != null) {
for (CreateUser user : userList) {
if (user.getUserName().equals(username)) {
// Hash the user input password
String hashedPassword = hashPassword(password);
// Compare the hashed passwords
if (user.getPassword().equals(hashedPassword)) {
return true; // Success
return true;
}
}
}
}
return false; // Fail
return false;
}
private String hashPassword(String password) {

14
src/main/java/SignUpGUI.java

@ -36,7 +36,7 @@ public class SignUpGUI extends JFrame implements ActionListener {
public SignUpGUI() {
setTitle("Sign Up");
setSize(400, 300); // Adjusted size for accommodating more fields
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
@ -64,7 +64,7 @@ public class SignUpGUI extends JFrame implements ActionListener {
confirmPasswordField.setBounds(140, 80, 160, 25);
add(confirmPasswordField);
JLabel firstNameLabel = new JLabel("First Name:"); // New field for first name
JLabel firstNameLabel = new JLabel("First Name:");
firstNameLabel.setBounds(20, 110, 80, 25);
add(firstNameLabel);
@ -72,7 +72,7 @@ public class SignUpGUI extends JFrame implements ActionListener {
firstNameField.setBounds(140, 110, 160, 25);
add(firstNameField);
JLabel surnameLabel = new JLabel("Surname:"); // New field for surname
JLabel surnameLabel = new JLabel("Surname:");
surnameLabel.setBounds(20, 140, 80, 25);
add(surnameLabel);
@ -89,7 +89,7 @@ public class SignUpGUI extends JFrame implements ActionListener {
add(birthdayField);
signUpButton = new JButton("Sign Up");
signUpButton.setBounds(140, 210, 100, 25); // Adjusted position
signUpButton.setBounds(140, 210, 100, 25);
signUpButton.addActionListener(this);
add(signUpButton);
}
@ -113,6 +113,7 @@ public class SignUpGUI extends JFrame implements ActionListener {
JOptionPane.showMessageDialog(this, "Username already exists!", "Sign Up Error", JOptionPane.ERROR_MESSAGE);
return;
}
try {
UUID randomUUID = UUID.randomUUID();
CreateUser user = CreateUser.createUser(randomUUID.toString(), username, password, birthday, firstName, surname);
@ -124,17 +125,18 @@ public class SignUpGUI extends JFrame implements ActionListener {
}
}
}
// Function to check if the input username doesn't already exist in the JSON file
private boolean isUsernameAvailable(String filename, String username) {
List<CreateUser> userList = CreateUser.readUserListFromJsonFile(filename);
if (userList != null) {
for (CreateUser user : userList) {
if (user.getUserName().equals(username)) {
return false; // Username already exists
return false;
}
}
}
return true; // Username is available
return true;
}
public static void main(String[] args) {

12
src/test/java/CreateUserTest.java

@ -23,7 +23,6 @@ class CreateUserTest {
assertEquals(firstName, user.getFirstName());
assertEquals(surname, user.surname());
// Password should be hashed
assertNotEquals(password, user.getPassword());
}
@ -38,16 +37,12 @@ class CreateUserTest {
String firstName = "Jane";
String surname = "Doe";
// Create a user
CreateUser user = new CreateUser(id, userName, password, birthday, firstName, surname);
// Save user to JSON file
user.saveToJsonFile(filename);
// Read users from JSON file
List<CreateUser> userList = CreateUser.readUserListFromJsonFile(filename);
// Ensure that the user has been saved and can be read correctly
assertEquals(1, userList.size());
CreateUser savedUser = userList.get(0);
assertEquals(id, savedUser.getId());
@ -56,7 +51,6 @@ class CreateUserTest {
assertEquals(firstName, savedUser.getFirstName());
assertEquals(surname, savedUser.surname());
// Clean up - delete the test file after the test
File file = new File(filename);
file.delete();
}
@ -71,22 +65,16 @@ class CreateUserTest {
String firstName = "Jack";
String surname = "Doe";
// Create a user
CreateUser user = new CreateUser(id, userName, password, birthday, firstName, surname);
// Save user to JSON file
user.saveToJsonFile(filename);
// Update stayLoggedIn flag
CreateUser.updateStayLoggedIn(filename, userName, true);
// Read updated user from JSON file
List<CreateUser> userList = CreateUser.readUserListFromJsonFile(filename);
// Ensure that the stayLoggedIn flag is updated
assertTrue(userList.get(0).isStayLoggedIn());
// Clean up - delete the test file after the test
File file = new File(filename);
file.delete();
}

11
src/test/java/LoginGUITest.java

@ -12,6 +12,7 @@ class LoginGUITest {
loginGUI = new LoginGUI();
}
//Tests initial state of the GUI
@Test
public void testInitialState() {
assertNotNull(loginGUI.getUsernameField());
@ -21,6 +22,7 @@ class LoginGUITest {
assertNotNull(loginGUI.getSignUpButton());
}
//Tests the login button
@Test
public void testActionPerformed_LoginButton() {
LoginGUI loginGUI = new LoginGUI();
@ -28,25 +30,18 @@ class LoginGUITest {
loginGUI.getPasswordField().setText("testPassword");
loginGUI.getStayLoggedInCheckbox().setSelected(true);
// Simulate action performed event on login button
loginGUI.actionPerformed(new ActionEvent(loginGUI.getLoginButton(), ActionEvent.ACTION_PERFORMED, null));
// Verify if login was successful
assertFalse(loginGUI.isVisible());
}
//Tests the check-box for staying logged in
@Test
public void testStayLoggedInCheckbox() {
// Initially, checkbox should be unchecked
assertFalse(loginGUI.getStayLoggedInCheckbox().isSelected());
// Simulate checking the checkbox
loginGUI.getStayLoggedInCheckbox().doClick();
assertTrue(loginGUI.getStayLoggedInCheckbox().isSelected());
}
}

25
src/test/java/SignUpGUITest.java

@ -1,4 +1,3 @@
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@ -6,31 +5,29 @@ import org.junit.jupiter.api.BeforeEach;
import java.awt.Component;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertTrue;
class SignUpGUITest {
private SignUpGUI signUpGUI;
//Instantiates a new instance of SignUpGUI
@BeforeEach
void setUp() {
signUpGUI = new SignUpGUI();
signUpGUI.setVisible(true);
}
//Disposes of the instance
@AfterEach
void tearDown() {
signUpGUI.dispose();
}
//Tests text field and button inputs
@Test
public void testSignUpButtonActionPerformed() {
// Set up text fields
signUpGUI.getUsernameField().setText("testUser");
signUpGUI.getPasswordField().setText("password");
signUpGUI.getConfirmPasswordField().setText("password");
@ -38,14 +35,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
signUpGUI.getFirstNameField().setText("John");
signUpGUI.getSurnameField().setText("Doe");
// Perform action
ActionEvent actionEvent = new ActionEvent(signUpGUI.getSignUpButton(), ActionEvent.ACTION_PERFORMED, "");
signUpGUI.actionPerformed(actionEvent);
}
//Tests if passwords are mismatched
@Test
void testPasswordMismatch() {
SignUpGUI signUpGUI = new SignUpGUI();
@ -56,12 +50,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
signUpGUI.getFirstNameField().setText("John");
signUpGUI.getSurnameField().setText("Doe");
signUpGUI.getSignUpButton().doClick(); // Simulate button click
signUpGUI.getSignUpButton().doClick();
// Make sure an error message dialog is shown
assertTrue(isErrorMessageShown(signUpGUI));
}
//Tests if user-name already exists
@Test
void testExistingUsername() {
SignUpGUI signUpGUI = new SignUpGUI();
@ -72,9 +66,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
signUpGUI.getFirstNameField().setText("John");
signUpGUI.getSurnameField().setText("Doe");
signUpGUI.getSignUpButton().doClick(); // Simulate button click
signUpGUI.getSignUpButton().doClick();
// Make sure an error message dialog is shown
assertTrue(isErrorMessageShown(signUpGUI));
}
@ -85,9 +78,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
if (component instanceof JOptionPane) {
return false;
}
}
return true;
}
}
Loading…
Cancel
Save