From 02d23f0094e07e8d4a59a83215639d32022dee65 Mon Sep 17 00:00:00 2001 From: Fong Yuan <42345573+FongYuan@users.noreply.github.com> Date: Sun, 11 Nov 2018 13:55:09 +0800 Subject: [PATCH 1/5] Update Messages (#260) * Categorize messages * Update unknown command message * Update invalid command format message * Update invalid index message * Move Duplicate Bike message from addbike command to common messages * Move bike not found message to common messages * Update loan verification messages * Move not edited message to common messages * Update unknown command message * Update messages * Rename MESSAGE_DUPLICATE_FAILURE to MESSAGE_SAME_AS_OLDEMAIL * Rename MESSAGE_INVALID_INFO to MESSAGE_INVALID_LOAN * Update SetEmailCommandTest.java --- .../java/loanbook/commons/core/Messages.java | 54 ++++++++++++++----- .../logic/commands/AddBikeCommand.java | 2 +- .../loanbook/logic/commands/AddCommand.java | 2 +- .../logic/commands/DeleteBikeCommand.java | 2 +- .../logic/commands/EditBikeCommand.java | 5 +- .../loanbook/logic/commands/EditCommand.java | 3 +- .../logic/commands/RemindCommand.java | 2 +- .../logic/commands/SetEmailCommand.java | 2 +- .../logic/parser/EditBikeCommandParser.java | 3 +- .../logic/parser/EditCommandParser.java | 3 +- src/test/java/guitests/GuiRobot.java | 2 +- .../logic/commands/AddBikeCommandTest.java | 3 +- .../logic/commands/AddCommandTest.java | 3 +- .../logic/commands/DeleteBikeCommandTest.java | 5 +- .../logic/commands/EditBikeCommandTest.java | 5 +- .../logic/commands/EditCommandTest.java | 3 +- .../logic/commands/RemindCommandTest.java | 4 +- .../logic/commands/SetEmailCommandTest.java | 2 +- .../parser/EditBikeCommandParserTest.java | 5 +- .../logic/parser/EditCommandParserTest.java | 3 +- .../systemtests/EditCommandSystemTest.java | 3 +- 21 files changed, 75 insertions(+), 41 deletions(-) diff --git a/src/main/java/loanbook/commons/core/Messages.java b/src/main/java/loanbook/commons/core/Messages.java index 0d66f26a7b46..2b32de18b776 100644 --- a/src/main/java/loanbook/commons/core/Messages.java +++ b/src/main/java/loanbook/commons/core/Messages.java @@ -1,32 +1,58 @@ package loanbook.commons.core; +import loanbook.logic.commands.HelpCommand; + /** * Container for user visible messages. */ public class Messages { - public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; - public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; - public static final String MESSAGE_INVALID_LOAN_DISPLAYED_INDEX = "The loan index provided is invalid"; + /* General */ + public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command." + + " Type in the `" + HelpCommand.COMMAND_WORD + "` command (or press F1)" + + " to view a list of available commands."; + public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format!" + + "\nPlease check that all required parameter prefixes are present and correctly typed in." + + "\n%1$s"; + + /* Lists */ + public static final String MESSAGE_INVALID_LOAN_DISPLAYED_INDEX = "The loan index provided is invalid." + + "Please ensure that the index is within the bounds of the list."; public static final String MESSAGE_LOANS_LISTED_OVERVIEW = "%1$d loans listed!"; + + /* Bikes */ + public static final String MESSAGE_DUPLICATE_BIKE = "A bike with the same name already exists in the loan book."; + public static final String MESSAGE_BIKE_NOT_FOUND = "No bike with that name exists within the loan book."; + + /* Editing */ + public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; + + /* Password */ public static final String MESSAGE_INVALID_PASSWORD = "The password provided is incorrect!"; public static final String MESSAGE_INVALID_OLD_PASS = "The old password entered is incorrect!"; public static final String MESSAGE_SAME_AS_CURRENT_PASSWORD = "The password provided is same as before!"; + + /* Date */ public static final String MESSAGE_INVALID_DATE_FORMAT = "Dates provided are either an invalid date or they are in an invalid format.\n" + "Please use the format YYYY-MM-DD."; public static final String MESSAGE_INVALID_DATE_RANGE = "Dates provided are not in a valid range. The end date cannot be before the start date."; - public static final String MESSAGE_AUTHEN_FAILURE = "Your password might be wrong " - + "or you did not enable \"less secure app\" in your google account setting before you use remind command." + + /* Email connection */ + public static final String MESSAGE_AUTHEN_FAILURE = "Your password might be incorrect," + + " or you have not enabled the \"Less secure apps\" setting in your Google account settings." + " Please refer to the User Guide by pressing F1!"; - public static final String MESSAGE_NO_NETWORK_CONNECTION = "No connection to the network! " - + "Please make sure you have network connected!"; - public static final String MESSAGE_BAD_RUNTIME = "You execute your code in a Java runtime" - + " that does not support UTF-8!"; - public static final String MESSAGE_INVALID_INFO = "There is no Loan with this id in the LoanBook!"; - public static final String MESSAGE_LOAN_IS_DONE = "You do not need to send reminder, because the loan is %s"; - public static final String MESSAGE_WRONG_OLDEMAIL = "The old email address is wrong!"; - public static final String MESSAGE_DUPLICATE_FAILURE = "The old email and the new email cannot be the same!"; - public static final String MESSAGE_INVALID_EMAIL = "Your new email address is invalid! It must be valid gmail!"; + public static final String MESSAGE_NO_NETWORK_CONNECTION = "No connection to the network!"; + public static final String MESSAGE_BAD_RUNTIME = "Your Java runtime environment does not support UTF-8!" + + " Please update your system to the latest version of Java."; + + /* Loan verification for email */ + public static final String MESSAGE_INVALID_LOAN = "There is no Loan with this ID in the LoanBook!"; + public static final String MESSAGE_LOAN_IS_DONE = "There is no need to send a reminder, because the loan is %s."; + + /* Email verification */ + public static final String MESSAGE_WRONG_OLDEMAIL = "The old email address is incorrect!"; + public static final String MESSAGE_SAME_AS_OLDEMAIL = "The new email should not be the same as the old email!"; + public static final String MESSAGE_INVALID_EMAIL = "Your new email address must be valid gmail."; } diff --git a/src/main/java/loanbook/logic/commands/AddBikeCommand.java b/src/main/java/loanbook/logic/commands/AddBikeCommand.java index 94395317ee1c..81794c984c5c 100644 --- a/src/main/java/loanbook/logic/commands/AddBikeCommand.java +++ b/src/main/java/loanbook/logic/commands/AddBikeCommand.java @@ -1,6 +1,7 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_DUPLICATE_BIKE; import static loanbook.logic.parser.CliSyntax.PREFIX_NAME; import loanbook.logic.CommandHistory; @@ -22,7 +23,6 @@ public class AddBikeCommand extends Command { + PREFIX_NAME + "Bike001"; public static final String MESSAGE_SUCCESS = "New bike added: %1$s"; - public static final String MESSAGE_DUPLICATE_BIKE = "A bike with the same name already exists in the loan book"; private final Bike toAdd; diff --git a/src/main/java/loanbook/logic/commands/AddCommand.java b/src/main/java/loanbook/logic/commands/AddCommand.java index 347224584ba9..d0524e8afdba 100644 --- a/src/main/java/loanbook/logic/commands/AddCommand.java +++ b/src/main/java/loanbook/logic/commands/AddCommand.java @@ -1,6 +1,7 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.parser.CliSyntax.PREFIX_BIKE; import static loanbook.logic.parser.CliSyntax.PREFIX_EMAIL; import static loanbook.logic.parser.CliSyntax.PREFIX_LOANRATE; @@ -46,7 +47,6 @@ public class AddCommand extends Command { public static final String MESSAGE_SUCCESS = "New loan added: %1$s"; public static final String MESSAGE_LOANBOOK_FULL = "The loan book is full"; - public static final String MESSAGE_BIKE_NOT_FOUND = "No bike with that name exists within the loan book"; private final Loan toAdd; diff --git a/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java b/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java index 25ddd941b220..1db32b6a009c 100644 --- a/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java +++ b/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java @@ -1,6 +1,7 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.parser.CliSyntax.PREFIX_NAME; import static loanbook.logic.parser.CliSyntax.PREFIX_PASSWORD; @@ -28,7 +29,6 @@ public class DeleteBikeCommand extends Command { + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "Bike001 " + PREFIX_PASSWORD + "a12345"; public static final String MESSAGE_DELETE_BIKE_SUCCESS = "Deleted Bike: %1$s"; - public static final String MESSAGE_BIKE_NOT_FOUND = "No bike with that name exists within the loan book"; private final Name bikeName; private final Password targetPassword; diff --git a/src/main/java/loanbook/logic/commands/EditBikeCommand.java b/src/main/java/loanbook/logic/commands/EditBikeCommand.java index 0442def9ca5f..caff6e757567 100644 --- a/src/main/java/loanbook/logic/commands/EditBikeCommand.java +++ b/src/main/java/loanbook/logic/commands/EditBikeCommand.java @@ -1,6 +1,8 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; +import static loanbook.commons.core.Messages.MESSAGE_DUPLICATE_BIKE; import static loanbook.logic.parser.CliSyntax.PREFIX_NAME; import static loanbook.model.Model.PREDICATE_SHOW_ALL_BIKES; @@ -28,9 +30,6 @@ public class EditBikeCommand extends Command { + PREFIX_NAME + "Bike002"; public static final String MESSAGE_EDIT_BIKE_SUCCESS = "Edited bike: %1$s"; - public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; - public static final String MESSAGE_DUPLICATE_BIKE = "A bike with the same name already exists in the loan book"; - public static final String MESSAGE_BIKE_NOT_FOUND = "No bike with that name exists within the loan book."; private final Name bikeName; private final EditBikeDescriptor editBikeDescriptor; diff --git a/src/main/java/loanbook/logic/commands/EditCommand.java b/src/main/java/loanbook/logic/commands/EditCommand.java index 80611019c807..2745e0c17d32 100644 --- a/src/main/java/loanbook/logic/commands/EditCommand.java +++ b/src/main/java/loanbook/logic/commands/EditCommand.java @@ -1,6 +1,7 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.parser.CliSyntax.PREFIX_BIKE; import static loanbook.logic.parser.CliSyntax.PREFIX_EMAIL; import static loanbook.logic.parser.CliSyntax.PREFIX_LOANRATE; @@ -57,8 +58,6 @@ public class EditCommand extends Command { + PREFIX_EMAIL + "johndoe@example.com"; public static final String MESSAGE_EDIT_LOAN_SUCCESS = "Edited Loan: %1$s"; - public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; - public static final String MESSAGE_BIKE_NOT_FOUND = "No bike with that name exists within the loan book."; private final Index index; private final EditLoanDescriptor editLoanDescriptor; diff --git a/src/main/java/loanbook/logic/commands/RemindCommand.java b/src/main/java/loanbook/logic/commands/RemindCommand.java index 98716c7266ff..38db522cd318 100644 --- a/src/main/java/loanbook/logic/commands/RemindCommand.java +++ b/src/main/java/loanbook/logic/commands/RemindCommand.java @@ -56,7 +56,7 @@ public CommandResult execute(Model model, CommandHistory history) throws Command Optional targetLoan = model.getLoanById(id); if (!targetLoan.isPresent()) { - throw new CommandException(Messages.MESSAGE_INVALID_INFO); + throw new CommandException(Messages.MESSAGE_INVALID_LOAN); } if (targetLoan.get().getLoanStatus().equals(LoanStatus.RETURNED)) { diff --git a/src/main/java/loanbook/logic/commands/SetEmailCommand.java b/src/main/java/loanbook/logic/commands/SetEmailCommand.java index 85a31e086b05..73715cbdd525 100644 --- a/src/main/java/loanbook/logic/commands/SetEmailCommand.java +++ b/src/main/java/loanbook/logic/commands/SetEmailCommand.java @@ -44,7 +44,7 @@ public CommandResult execute(Model model, CommandHistory history) throws Command requireNonNull(model); if ((newEmail.value).equals(model.getMyEmail())) { - throw new CommandException(Messages.MESSAGE_DUPLICATE_FAILURE); + throw new CommandException(Messages.MESSAGE_SAME_AS_OLDEMAIL); } if (!Email.isValidGmail(newEmail.value)) { diff --git a/src/main/java/loanbook/logic/parser/EditBikeCommandParser.java b/src/main/java/loanbook/logic/parser/EditBikeCommandParser.java index 348a2eaf52a1..faa4a69cb31c 100644 --- a/src/main/java/loanbook/logic/parser/EditBikeCommandParser.java +++ b/src/main/java/loanbook/logic/parser/EditBikeCommandParser.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; import static loanbook.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static loanbook.commons.core.Messages.MESSAGE_NOT_EDITED; import static loanbook.logic.parser.CliSyntax.PREFIX_NAME; import loanbook.logic.commands.EditBikeCommand; @@ -38,7 +39,7 @@ public EditBikeCommand parse(String args) throws ParseException { } if (!editBikeDescriptor.isAnyFieldEdited()) { - throw new ParseException(EditBikeCommand.MESSAGE_NOT_EDITED); + throw new ParseException(MESSAGE_NOT_EDITED); } return new EditBikeCommand(bikeName, editBikeDescriptor); diff --git a/src/main/java/loanbook/logic/parser/EditCommandParser.java b/src/main/java/loanbook/logic/parser/EditCommandParser.java index 9820de62d380..798d36623cb3 100644 --- a/src/main/java/loanbook/logic/parser/EditCommandParser.java +++ b/src/main/java/loanbook/logic/parser/EditCommandParser.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; import static loanbook.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static loanbook.commons.core.Messages.MESSAGE_NOT_EDITED; import static loanbook.logic.parser.CliSyntax.PREFIX_BIKE; import static loanbook.logic.parser.CliSyntax.PREFIX_EMAIL; import static loanbook.logic.parser.CliSyntax.PREFIX_LOANRATE; @@ -67,7 +68,7 @@ public EditCommand parse(String args) throws ParseException { parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editLoanDescriptor::setTags); if (!editLoanDescriptor.isAnyFieldEdited()) { - throw new ParseException(EditCommand.MESSAGE_NOT_EDITED); + throw new ParseException(MESSAGE_NOT_EDITED); } return new EditCommand(index, editLoanDescriptor); diff --git a/src/test/java/guitests/GuiRobot.java b/src/test/java/guitests/GuiRobot.java index 7f3031fbef16..e6a6aff257c3 100644 --- a/src/test/java/guitests/GuiRobot.java +++ b/src/test/java/guitests/GuiRobot.java @@ -14,7 +14,7 @@ */ public class GuiRobot extends FxRobot { - private static final int PAUSE_FOR_HUMAN_DELAY_MILLISECONDS = 250; + private static final int PAUSE_FOR_HUMAN_DELAY_MILLISECONDS = 0; private static final int DEFAULT_WAIT_FOR_EVENT_TIMEOUT_MILLISECONDS = 5000; private static final String PROPERTY_TESTFX_HEADLESS = "testfx.headless"; diff --git a/src/test/java/loanbook/logic/commands/AddBikeCommandTest.java b/src/test/java/loanbook/logic/commands/AddBikeCommandTest.java index 0fa70ca17ee1..b517f7520468 100644 --- a/src/test/java/loanbook/logic/commands/AddBikeCommandTest.java +++ b/src/test/java/loanbook/logic/commands/AddBikeCommandTest.java @@ -1,6 +1,7 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_DUPLICATE_BIKE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -54,7 +55,7 @@ public void execute_duplicateBike_throwsCommandException() throws Exception { ModelStub modelStub = new ModelStubWithBike(validBike); thrown.expect(CommandException.class); - thrown.expectMessage(AddBikeCommand.MESSAGE_DUPLICATE_BIKE); + thrown.expectMessage(MESSAGE_DUPLICATE_BIKE); addBikeCommand.execute(modelStub, commandHistory); } diff --git a/src/test/java/loanbook/logic/commands/AddCommandTest.java b/src/test/java/loanbook/logic/commands/AddCommandTest.java index 21efb5e87715..bcb67909471a 100644 --- a/src/test/java/loanbook/logic/commands/AddCommandTest.java +++ b/src/test/java/loanbook/logic/commands/AddCommandTest.java @@ -1,6 +1,7 @@ package loanbook.logic.commands; import static java.util.Objects.requireNonNull; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.commands.CommandTestUtil.NOEXIST_NAME_BIKE; import static loanbook.testutil.TypicalLoanBook.getTypicalLoanBook; import static org.junit.Assert.assertEquals; @@ -65,7 +66,7 @@ public void execute_bikeDoesNotExistInModel_throwsCommandException() throws Exce Model model = new ModelManager(getTypicalLoanBook(), new UserPrefs()); thrown.expect(CommandException.class); - thrown.expectMessage(AddCommand.MESSAGE_BIKE_NOT_FOUND); + thrown.expectMessage(MESSAGE_BIKE_NOT_FOUND); addCommand.execute(model, commandHistory); } diff --git a/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java b/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java index beae889a4ed6..b56136b1b222 100644 --- a/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java +++ b/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java @@ -1,5 +1,6 @@ package loanbook.logic.commands; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.commands.CommandTestUtil.NOEXIST_NAME_BIKE; import static loanbook.logic.commands.CommandTestUtil.VALID_NAME_BIKE1; import static loanbook.logic.commands.CommandTestUtil.VALID_NAME_BIKE2; @@ -53,7 +54,7 @@ public void execute_invalidNameUnfilteredList_throwsCommandException() { DeleteBikeCommand deleteBikeCommand = new DeleteBikeCommand(new Name(NOEXIST_NAME_BIKE), new Password(model.getPass())); - assertCommandFailure(deleteBikeCommand, model, commandHistory, DeleteBikeCommand.MESSAGE_BIKE_NOT_FOUND); + assertCommandFailure(deleteBikeCommand, model, commandHistory, MESSAGE_BIKE_NOT_FOUND); } @Test @@ -132,7 +133,7 @@ public void executeUndoRedo_invalidBikeName_failure() { DeleteBikeCommand deleteBikeCommand = new DeleteBikeCommand(new Name(NOEXIST_NAME_BIKE), pass); // execution failed -> loan book state not added into model - assertCommandFailure(deleteBikeCommand, model, commandHistory, DeleteBikeCommand.MESSAGE_BIKE_NOT_FOUND); + assertCommandFailure(deleteBikeCommand, model, commandHistory, MESSAGE_BIKE_NOT_FOUND); // single loan book state in model -> undoCommand and redoCommand fail assertCommandFailure(new UndoCommand(), model, commandHistory, UndoCommand.MESSAGE_FAILURE); diff --git a/src/test/java/loanbook/logic/commands/EditBikeCommandTest.java b/src/test/java/loanbook/logic/commands/EditBikeCommandTest.java index 40fb8fd8eb57..19fd8bde2388 100644 --- a/src/test/java/loanbook/logic/commands/EditBikeCommandTest.java +++ b/src/test/java/loanbook/logic/commands/EditBikeCommandTest.java @@ -1,5 +1,6 @@ package loanbook.logic.commands; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.commands.CommandTestUtil.DESC_BIKE1; import static loanbook.logic.commands.CommandTestUtil.DESC_BIKE2; import static loanbook.logic.commands.CommandTestUtil.NOEXIST_NAME_BIKE; @@ -94,7 +95,7 @@ public void execute_bikeDoesNotExistInModel_failure() { .withName(VALID_NAME_BIKE1).build(); EditBikeCommand command = new EditBikeCommand(new Name(NOEXIST_NAME_BIKE), descriptor); - assertCommandFailure(command, model, commandHistory, EditBikeCommand.MESSAGE_BIKE_NOT_FOUND); + assertCommandFailure(command, model, commandHistory, MESSAGE_BIKE_NOT_FOUND); } @Test @@ -104,7 +105,7 @@ public void executeUndoRedo_nonexistentNameUnfilteredList_failure() { EditBikeCommand command = new EditBikeCommand(new Name(NOEXIST_NAME_BIKE), descriptor); // execution failed -> loan book state not added into model - assertCommandFailure(command, model, commandHistory, EditBikeCommand.MESSAGE_BIKE_NOT_FOUND); + assertCommandFailure(command, model, commandHistory, MESSAGE_BIKE_NOT_FOUND); // single loan book state in model -> undoCommand and redoCommand fail assertCommandFailure(new UndoCommand(), model, commandHistory, UndoCommand.MESSAGE_FAILURE); diff --git a/src/test/java/loanbook/logic/commands/EditCommandTest.java b/src/test/java/loanbook/logic/commands/EditCommandTest.java index afbba9b82b22..ea07d0fed916 100644 --- a/src/test/java/loanbook/logic/commands/EditCommandTest.java +++ b/src/test/java/loanbook/logic/commands/EditCommandTest.java @@ -1,5 +1,6 @@ package loanbook.logic.commands; +import static loanbook.commons.core.Messages.MESSAGE_BIKE_NOT_FOUND; import static loanbook.logic.commands.CommandTestUtil.DESC_AMY; import static loanbook.logic.commands.CommandTestUtil.DESC_BOB; import static loanbook.logic.commands.CommandTestUtil.NOEXIST_NAME_BIKE; @@ -151,7 +152,7 @@ public void execute_bikeDoesNotExistInModel_failure() { .withBike(NOEXIST_NAME_BIKE).build(); EditCommand editCommand = new EditCommand(indexLastLoan, descriptor); - assertCommandFailure(editCommand, model, commandHistory, EditCommand.MESSAGE_BIKE_NOT_FOUND); + assertCommandFailure(editCommand, model, commandHistory, MESSAGE_BIKE_NOT_FOUND); } @Test diff --git a/src/test/java/loanbook/logic/commands/RemindCommandTest.java b/src/test/java/loanbook/logic/commands/RemindCommandTest.java index 33642892a4e3..5c04da9684e6 100644 --- a/src/test/java/loanbook/logic/commands/RemindCommandTest.java +++ b/src/test/java/loanbook/logic/commands/RemindCommandTest.java @@ -63,7 +63,7 @@ public void execute_noTargetLoan_throwsCommandException() throws Exception { RemindCommand command = new RemindCommand(PASSWORD1, id); thrown.expect(CommandException.class); - thrown.expectMessage(Messages.MESSAGE_INVALID_INFO); + thrown.expectMessage(Messages.MESSAGE_INVALID_LOAN); command.execute(modelStub, commandHistory); } @@ -91,7 +91,7 @@ public void execute_sendToDeletedLoan_throwsCommandException() throws Exception RemindCommand command = new RemindCommand(PASSWORD1, id); thrown.expect(CommandException.class); - thrown.expectMessage(Messages.MESSAGE_INVALID_INFO); + thrown.expectMessage(Messages.MESSAGE_INVALID_LOAN); command.execute(modelStub, commandHistory); } diff --git a/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java b/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java index 1c1a4444363e..656a6a070568 100644 --- a/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java +++ b/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java @@ -58,7 +58,7 @@ public void execute_duplicateNewEmail_throwsCommandException() throws Exception ModelStubWithUserEmail modelStub = new ModelStubWithUserEmail(); thrown.expect(CommandException.class); - thrown.expectMessage(Messages.MESSAGE_DUPLICATE_FAILURE); + thrown.expectMessage(Messages.MESSAGE_SAME_AS_OLDEMAIL); command.execute(modelStub, commandHistory); } diff --git a/src/test/java/loanbook/logic/parser/EditBikeCommandParserTest.java b/src/test/java/loanbook/logic/parser/EditBikeCommandParserTest.java index b323572426fe..f643f14589b9 100644 --- a/src/test/java/loanbook/logic/parser/EditBikeCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/EditBikeCommandParserTest.java @@ -1,6 +1,7 @@ package loanbook.logic.parser; import static loanbook.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static loanbook.commons.core.Messages.MESSAGE_NOT_EDITED; import static loanbook.logic.commands.CommandTestUtil.INVALID_NAME_DESC; import static loanbook.logic.commands.CommandTestUtil.NAME_DESC_BIKE1; import static loanbook.logic.commands.CommandTestUtil.NAME_DESC_BIKE2; @@ -29,7 +30,7 @@ public void parse_missingParts_failure() { assertParseFailure(parser, "n/Bike002", MESSAGE_INVALID_FORMAT); // no field specified - assertParseFailure(parser, "Bike001", EditBikeCommand.MESSAGE_NOT_EDITED); + assertParseFailure(parser, "Bike001", MESSAGE_NOT_EDITED); // no bike name and no field specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); @@ -42,7 +43,7 @@ public void parse_invalidPreamble_failure() { // invalid arguments being parsed as preamble: considered part of the bike's name assertParseFailure(parser, VALID_NAME_BIKE1 + " some random string", - EditBikeCommand.MESSAGE_NOT_EDITED); + MESSAGE_NOT_EDITED); // invalid prefix being parsed as preamble assertParseFailure(parser, VALID_NAME_BIKE1 + "i/ string", MESSAGE_INVALID_FORMAT); diff --git a/src/test/java/loanbook/logic/parser/EditCommandParserTest.java b/src/test/java/loanbook/logic/parser/EditCommandParserTest.java index a50e42c593bc..1402001c6acd 100644 --- a/src/test/java/loanbook/logic/parser/EditCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/EditCommandParserTest.java @@ -1,6 +1,7 @@ package loanbook.logic.parser; import static loanbook.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static loanbook.commons.core.Messages.MESSAGE_NOT_EDITED; import static loanbook.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; import static loanbook.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; import static loanbook.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; @@ -52,7 +53,7 @@ public void parse_missingParts_failure() { assertParseFailure(parser, VALID_NAME_AMY, MESSAGE_INVALID_FORMAT); // no field specified - assertParseFailure(parser, "1", EditCommand.MESSAGE_NOT_EDITED); + assertParseFailure(parser, "1", MESSAGE_NOT_EDITED); // no index and no field specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); diff --git a/src/test/java/systemtests/EditCommandSystemTest.java b/src/test/java/systemtests/EditCommandSystemTest.java index 4d5911c5b757..b56c69aecddd 100644 --- a/src/test/java/systemtests/EditCommandSystemTest.java +++ b/src/test/java/systemtests/EditCommandSystemTest.java @@ -1,5 +1,6 @@ package systemtests; +import static loanbook.commons.core.Messages.MESSAGE_NOT_EDITED; import static loanbook.logic.commands.CommandTestUtil.BIKE_DESC_AMY; import static loanbook.logic.commands.CommandTestUtil.BIKE_DESC_BOB; import static loanbook.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; @@ -195,7 +196,7 @@ public void edit() { /* Case: missing all fields -> rejected */ assertCommandFailure(EditCommand.COMMAND_WORD + " " + INDEX_FIRST_LOAN.getOneBased(), - EditCommand.MESSAGE_NOT_EDITED); + MESSAGE_NOT_EDITED); /* Case: invalid name -> rejected */ assertCommandFailure(EditCommand.COMMAND_WORD + " " + INDEX_FIRST_LOAN.getOneBased() + INVALID_NAME_DESC, From c9552033c1db0b2daee612ebec0adf07fe81407b Mon Sep 17 00:00:00 2001 From: Ang Wei Neng Date: Sun, 11 Nov 2018 13:55:35 +0800 Subject: [PATCH 2/5] Hot fix for image name (#268) * Hot fix for image name * Update image --- docs/DeveloperGuide.adoc | 8 ++++---- docs/diagrams/~$SetPassActivityDiagram.pptx | Bin 0 -> 165 bytes docs/images/setPassActivityDiagram.png | Bin 160143 -> 166265 bytes 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 docs/diagrams/~$SetPassActivityDiagram.pptx diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 3ef4d1b5d921..92d6cd0506eb 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -440,11 +440,11 @@ Step 5. Password in `UserPref` is saved to the encrypted value of the new passwo The following sequence diagram shows how the `setpass` operation works: -image::setPasswordLogic.png[width="800"] +image::SetPasswordLogic.png[width="800"] The following activity diagram summarizes what happens when a user executes `setpass`: -image::setpassActivityDiagram.png[width="650"] +image::SetPassActivityDiagram.png[width="650"] Step 6. The user executes a critical command `delete i/1 x/a12345`. @@ -457,11 +457,11 @@ If current password input is wrong, or if the index provided is invalid, deletio The following sequence diagram shows how the new `delete` operation works: -image::deleteLoanWithPass.png[width="800"] +image::DeleteLoanWithPass.png[width="800"] The following activity diagram summarizes what happens when a user executes `delete`: -image::deleteActivityDiagram.png[width="650"] +image::DeleteActivityDiagram.png[width="650"] ==== Design Considerations diff --git a/docs/diagrams/~$SetPassActivityDiagram.pptx b/docs/diagrams/~$SetPassActivityDiagram.pptx new file mode 100644 index 0000000000000000000000000000000000000000..138f1a0b27a2410d47b0a0c01b9dca2748b7f1b5 GIT binary patch literal 165 zcmbtK%Lza+2+I<^yHM$=6NrK*LAyTTnHLla7!3db literal 0 HcmV?d00001 diff --git a/docs/images/setPassActivityDiagram.png b/docs/images/setPassActivityDiagram.png index a22739e015687ec923243c714146d5d66060a956..7a6306fcd5df2cafe00845c02db9879210a6a727 100644 GIT binary patch literal 166265 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%0DhInV#VwbW~V5>~da72A7@{6S$bB@v5n~0Z?IE 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 R{|)%3u5#~AnbO1H{{wvWw~hb+ literal 160143 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 I${!E@4+@P*;Q#;t From cc3af3c279160c223c9c5333d2347aad0472fe99 Mon Sep 17 00:00:00 2001 From: Ang Wei Neng Date: Sun, 11 Nov 2018 16:04:23 +0800 Subject: [PATCH 3/5] Encrypt password (#264) * Encrypt password * Provide credit for code * Provide credit for code * Fix merge conflict * Add abstract class to commands * Fix test --- .../java/loanbook/commons/core/Messages.java | 1 - .../logic/commands/DeleteBikeCommand.java | 15 +-- .../logic/commands/DeleteCommand.java | 3 +- .../commands/PasswordProtectedCommand.java | 7 +- .../logic/commands/ResetAllCommand.java | 3 +- .../logic/commands/ResetLoansCommand.java | 3 +- .../logic/commands/SetEmailCommand.java | 13 +-- .../logic/commands/SetPasswordCommand.java | 20 ++-- .../logic/parser/DeleteBikeCommandParser.java | 3 +- .../logic/parser/DeleteCommandParser.java | 3 +- .../loanbook/logic/parser/ParserUtil.java | 8 +- .../logic/parser/ResetAllCommandParser.java | 3 +- .../logic/parser/ResetLoansCommandParser.java | 3 +- .../logic/parser/SetEmailCommandParser.java | 3 +- .../parser/SetPasswordCommandParser.java | 4 +- src/main/java/loanbook/model/Model.java | 5 + .../java/loanbook/model/ModelManager.java | 5 + src/main/java/loanbook/model/Password.java | 110 +++++++++++++++--- src/main/java/loanbook/model/UserPrefs.java | 14 ++- .../logic/commands/DeleteBikeCommandTest.java | 22 ++-- .../logic/commands/DeleteCommandTest.java | 44 +++---- .../PasswordProtectedCommandTest.java | 13 +-- .../logic/commands/RemindCommandTest.java | 3 +- .../logic/commands/ResetAllCommandTest.java | 11 +- .../logic/commands/ResetLoansCommandTest.java | 5 +- .../logic/commands/SetEmailCommandTest.java | 20 ++-- .../commands/SetPasswordCommandTest.java | 31 ++--- .../parser/DeleteBikeCommandParserTest.java | 3 +- .../logic/parser/DeleteCommandParserTest.java | 3 +- .../logic/parser/LoanBookParserTest.java | 12 +- .../parser/ResetAllCommandParserTest.java | 4 +- .../parser/SetEmailCommandParserTest.java | 3 +- .../parser/SetPasswordCommandParserTest.java | 2 +- .../java/loanbook/model/ModelManagerTest.java | 8 +- .../storage/JsonUserPrefsStorageTest.java | 23 +--- .../java/loanbook/testutil/ModelStub.java | 5 + .../systemtests/FindCommandSystemTest.java | 2 + 37 files changed, 246 insertions(+), 194 deletions(-) diff --git a/src/main/java/loanbook/commons/core/Messages.java b/src/main/java/loanbook/commons/core/Messages.java index 2b32de18b776..89af0de010f0 100644 --- a/src/main/java/loanbook/commons/core/Messages.java +++ b/src/main/java/loanbook/commons/core/Messages.java @@ -29,7 +29,6 @@ public class Messages { /* Password */ public static final String MESSAGE_INVALID_PASSWORD = "The password provided is incorrect!"; - public static final String MESSAGE_INVALID_OLD_PASS = "The old password entered is incorrect!"; public static final String MESSAGE_SAME_AS_CURRENT_PASSWORD = "The password provided is same as before!"; /* Date */ diff --git a/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java b/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java index 1db32b6a009c..101582437e58 100644 --- a/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java +++ b/src/main/java/loanbook/logic/commands/DeleteBikeCommand.java @@ -7,18 +7,16 @@ import java.util.Optional; -import loanbook.commons.core.Messages; import loanbook.logic.CommandHistory; import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; -import loanbook.model.Password; import loanbook.model.bike.Bike; import loanbook.model.loan.Name; /** * Deletes a bike identified using it's displayed index from the loan book. */ -public class DeleteBikeCommand extends Command { +public class DeleteBikeCommand extends PasswordProtectedCommand { public static final String COMMAND_WORD = "deletebike"; @@ -31,27 +29,24 @@ public class DeleteBikeCommand extends Command { public static final String MESSAGE_DELETE_BIKE_SUCCESS = "Deleted Bike: %1$s"; private final Name bikeName; - private final Password targetPassword; + private final String targetPassword; - public DeleteBikeCommand(Name bikeName, Password pass) { + public DeleteBikeCommand(Name bikeName, String pass) { + super(pass, COMMAND_WORD); this.bikeName = bikeName; targetPassword = pass; } @Override public CommandResult execute(Model model, CommandHistory history) throws CommandException { - requireNonNull(model); + assertCorrectPassword(model); Optional actualBike = model.getBike(bikeName.value); if (!actualBike.isPresent()) { throw new CommandException(MESSAGE_BIKE_NOT_FOUND); } - if (!Password.isSamePassword(model.getPass(), targetPassword)) { - throw new CommandException(Messages.MESSAGE_INVALID_PASSWORD); - } - model.deleteBike(actualBike.get()); model.commitLoanBook(); return new CommandResult(String.format(MESSAGE_DELETE_BIKE_SUCCESS, actualBike.get())); diff --git a/src/main/java/loanbook/logic/commands/DeleteCommand.java b/src/main/java/loanbook/logic/commands/DeleteCommand.java index 81db6ddc9cff..28b3382a305d 100644 --- a/src/main/java/loanbook/logic/commands/DeleteCommand.java +++ b/src/main/java/loanbook/logic/commands/DeleteCommand.java @@ -11,7 +11,6 @@ import loanbook.logic.CommandHistory; import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; -import loanbook.model.Password; import loanbook.model.loan.Loan; /** @@ -31,7 +30,7 @@ public class DeleteCommand extends PasswordProtectedCommand { private final Index targetIndex; - public DeleteCommand(Index targetIndex, Password pass) { + public DeleteCommand(Index targetIndex, String pass) { super(pass, COMMAND_WORD); this.targetIndex = targetIndex; } diff --git a/src/main/java/loanbook/logic/commands/PasswordProtectedCommand.java b/src/main/java/loanbook/logic/commands/PasswordProtectedCommand.java index 95e0347e9fcd..ab854863c0f1 100644 --- a/src/main/java/loanbook/logic/commands/PasswordProtectedCommand.java +++ b/src/main/java/loanbook/logic/commands/PasswordProtectedCommand.java @@ -9,11 +9,10 @@ * Represents a Command that requires password authentication. */ public abstract class PasswordProtectedCommand extends Command { - - private final Password targetPassword; + private final String targetPassword; private final String commandName; - public PasswordProtectedCommand(Password password, String commandName) { + public PasswordProtectedCommand(String password, String commandName) { targetPassword = password; this.commandName = commandName; } @@ -24,7 +23,7 @@ public PasswordProtectedCommand(Password password, String commandName) { * @throws CommandException if the password does not match the specified model's */ protected void assertCorrectPassword(Model model) throws CommandException { - if (!Password.isSamePassword(model.getPass(), targetPassword)) { + if (!Password.isSamePassword(model.getPass(), targetPassword, model.getSalt())) { throw new CommandException(Messages.MESSAGE_INVALID_PASSWORD); } } diff --git a/src/main/java/loanbook/logic/commands/ResetAllCommand.java b/src/main/java/loanbook/logic/commands/ResetAllCommand.java index f10485efeb07..19e2804b9e7d 100644 --- a/src/main/java/loanbook/logic/commands/ResetAllCommand.java +++ b/src/main/java/loanbook/logic/commands/ResetAllCommand.java @@ -6,7 +6,6 @@ import loanbook.logic.CommandHistory; import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; -import loanbook.model.Password; /** * Clears the loans and bikes and resets the loan ID in the loan book. @@ -23,7 +22,7 @@ public class ResetAllCommand extends PasswordProtectedCommand { public static final String MESSAGE_RESET_ALL_SUCCESS = "Loan book has been successfully reset!"; - public ResetAllCommand(Password pass) { + public ResetAllCommand(String pass) { super(pass, COMMAND_WORD); } diff --git a/src/main/java/loanbook/logic/commands/ResetLoansCommand.java b/src/main/java/loanbook/logic/commands/ResetLoansCommand.java index 4f3092072edf..2e4df56662be 100644 --- a/src/main/java/loanbook/logic/commands/ResetLoansCommand.java +++ b/src/main/java/loanbook/logic/commands/ResetLoansCommand.java @@ -6,7 +6,6 @@ import loanbook.logic.CommandHistory; import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; -import loanbook.model.Password; /** * Clears the loans and bikes and resets the loan ID in the loan book. @@ -23,7 +22,7 @@ public class ResetLoansCommand extends PasswordProtectedCommand { public static final String MESSAGE_RESET_LOANS_SUCCESS = "Loan book has been successfully reset!"; - public ResetLoansCommand(Password pass) { + public ResetLoansCommand(String pass) { super(pass, COMMAND_WORD); } diff --git a/src/main/java/loanbook/logic/commands/SetEmailCommand.java b/src/main/java/loanbook/logic/commands/SetEmailCommand.java index 73715cbdd525..615265ba696c 100644 --- a/src/main/java/loanbook/logic/commands/SetEmailCommand.java +++ b/src/main/java/loanbook/logic/commands/SetEmailCommand.java @@ -9,13 +9,12 @@ import loanbook.logic.CommandHistory; import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; -import loanbook.model.Password; import loanbook.model.loan.Email; /** * Set user's email to the app. */ -public class SetEmailCommand extends Command { +public class SetEmailCommand extends PasswordProtectedCommand { public static final String COMMAND_WORD = "setemail"; @@ -28,12 +27,13 @@ public class SetEmailCommand extends Command { public static final String MESSAGE_SUCCESS = "Your email is set successfully!"; private final Email newEmail; - private final Password password; + private final String password; /** * Creates an SetEmailCommand to set user's {@code Email} according to the {@code newEmail} provided. */ - public SetEmailCommand(Email newEmail, Password password) { + public SetEmailCommand(Email newEmail, String password) { + super(password, COMMAND_WORD); requireAllNonNull(newEmail, password); this.newEmail = newEmail; this.password = password; @@ -42,6 +42,7 @@ public SetEmailCommand(Email newEmail, Password password) { @Override public CommandResult execute(Model model, CommandHistory history) throws CommandException { requireNonNull(model); + assertCorrectPassword(model); if ((newEmail.value).equals(model.getMyEmail())) { throw new CommandException(Messages.MESSAGE_SAME_AS_OLDEMAIL); @@ -51,10 +52,6 @@ public CommandResult execute(Model model, CommandHistory history) throws Command throw new CommandException(Messages.MESSAGE_INVALID_EMAIL); } - if (!Password.isSamePassword(model.getPass(), password)) { - throw new CommandException(Messages.MESSAGE_INVALID_PASSWORD); - } - model.setMyEmail(newEmail.value); return new CommandResult(MESSAGE_SUCCESS); diff --git a/src/main/java/loanbook/logic/commands/SetPasswordCommand.java b/src/main/java/loanbook/logic/commands/SetPasswordCommand.java index b538664185ca..61e3e1f496ec 100644 --- a/src/main/java/loanbook/logic/commands/SetPasswordCommand.java +++ b/src/main/java/loanbook/logic/commands/SetPasswordCommand.java @@ -11,7 +11,7 @@ /** * Set password to loan book. */ -public class SetPasswordCommand extends Command { +public class SetPasswordCommand extends PasswordProtectedCommand { public static final String COMMAND_WORD = "setpass"; @@ -22,10 +22,11 @@ public class SetPasswordCommand extends Command { public static final String MESSAGE_CHANGE_PASSWORD_SUCCESS = "Password successfully changed!"; - private Password oldPassInput; - private Password newPassInput; + private String oldPassInput; + private String newPassInput; - public SetPasswordCommand(Password oldPassInput, Password newPassInput) { + public SetPasswordCommand(String oldPassInput, String newPassInput) { + super(oldPassInput, COMMAND_WORD); requireNonNull(oldPassInput); requireNonNull(newPassInput); this.oldPassInput = oldPassInput; @@ -35,13 +36,14 @@ public SetPasswordCommand(Password oldPassInput, Password newPassInput) { @Override public CommandResult execute(Model model, CommandHistory history) throws CommandException { requireNonNull(model); - if (!Password.isSamePassword(model.getPass(), oldPassInput)) { - throw new CommandException(Messages.MESSAGE_INVALID_OLD_PASS); - } - if (Password.isSamePassword(model.getPass(), newPassInput)) { + assertCorrectPassword(model); + + if (oldPassInput.equals(newPassInput)) { throw new CommandException(Messages.MESSAGE_SAME_AS_CURRENT_PASSWORD); } - model.setPass(newPassInput); + + model.setPass(new Password(newPassInput, model.getSalt())); + return new CommandResult(MESSAGE_CHANGE_PASSWORD_SUCCESS); } diff --git a/src/main/java/loanbook/logic/parser/DeleteBikeCommandParser.java b/src/main/java/loanbook/logic/parser/DeleteBikeCommandParser.java index e22ab2eaf2b0..b70168841a3c 100644 --- a/src/main/java/loanbook/logic/parser/DeleteBikeCommandParser.java +++ b/src/main/java/loanbook/logic/parser/DeleteBikeCommandParser.java @@ -7,7 +7,6 @@ import loanbook.logic.commands.DeleteBikeCommand; import loanbook.logic.parser.exceptions.ParseException; -import loanbook.model.Password; import loanbook.model.loan.Name; /** @@ -27,7 +26,7 @@ public DeleteBikeCommand parse(String args) throws ParseException { DeleteBikeCommand.MESSAGE_USAGE); Name bikeName = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); - Password password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); + String password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); return new DeleteBikeCommand(bikeName, password); } diff --git a/src/main/java/loanbook/logic/parser/DeleteCommandParser.java b/src/main/java/loanbook/logic/parser/DeleteCommandParser.java index 2fc90b74d694..b832178b8660 100644 --- a/src/main/java/loanbook/logic/parser/DeleteCommandParser.java +++ b/src/main/java/loanbook/logic/parser/DeleteCommandParser.java @@ -8,7 +8,6 @@ import loanbook.commons.core.index.Index; import loanbook.logic.commands.DeleteCommand; import loanbook.logic.parser.exceptions.ParseException; -import loanbook.model.Password; /** * Parses input arguments and creates a new DeleteCommand object. @@ -27,7 +26,7 @@ public DeleteCommand parse(String args) throws ParseException { DeleteCommand.MESSAGE_USAGE); Index index = ParserUtil.parseIndex(argMultimap.getValue(PREFIX_INDEX).get()); - Password password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); + String password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); return new DeleteCommand(index, password); } diff --git a/src/main/java/loanbook/logic/parser/ParserUtil.java b/src/main/java/loanbook/logic/parser/ParserUtil.java index d45dd7022b13..84c37e05e57b 100644 --- a/src/main/java/loanbook/logic/parser/ParserUtil.java +++ b/src/main/java/loanbook/logic/parser/ParserUtil.java @@ -100,18 +100,18 @@ public static Phone parsePhone(String phone) throws ParseException { } /** - * Parses a {@code String password} into a {@code Password}. + * Parses a {@code String password} into a {@code String}. * Leading and trailing whitespaces will be trimmed. * - * @throws ParseException if the given {@code Password} is invalid. + * @throws ParseException if the given {@code pass} is invalid. */ - public static Password parsePass(String pass) throws ParseException { + public static String parsePass(String pass) throws ParseException { requireNonNull(pass); String trimmedPass = pass.trim(); if (!Password.isValidPass(trimmedPass)) { throw new ParseException(Password.MESSAGE_PASSWORD_CONSTRAINTS); } - return new Password(trimmedPass); + return trimmedPass; } /** diff --git a/src/main/java/loanbook/logic/parser/ResetAllCommandParser.java b/src/main/java/loanbook/logic/parser/ResetAllCommandParser.java index 8f04fea88599..fdbb99ba5770 100644 --- a/src/main/java/loanbook/logic/parser/ResetAllCommandParser.java +++ b/src/main/java/loanbook/logic/parser/ResetAllCommandParser.java @@ -6,7 +6,6 @@ import loanbook.logic.commands.ResetAllCommand; import loanbook.logic.parser.exceptions.ParseException; -import loanbook.model.Password; /** * Parses input arguments and creates a new DeleteCommand object. @@ -25,7 +24,7 @@ public ResetAllCommand parse(String args) throws ParseException { List.of(), ResetAllCommand.MESSAGE_USAGE); - Password password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); + String password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); return new ResetAllCommand(password); } diff --git a/src/main/java/loanbook/logic/parser/ResetLoansCommandParser.java b/src/main/java/loanbook/logic/parser/ResetLoansCommandParser.java index f99a61edb81a..0da62b07ca75 100644 --- a/src/main/java/loanbook/logic/parser/ResetLoansCommandParser.java +++ b/src/main/java/loanbook/logic/parser/ResetLoansCommandParser.java @@ -6,7 +6,6 @@ import loanbook.logic.commands.ResetLoansCommand; import loanbook.logic.parser.exceptions.ParseException; -import loanbook.model.Password; /** * Parses input arguments and creates a new DeleteCommand object. @@ -25,7 +24,7 @@ public ResetLoansCommand parse(String args) throws ParseException { List.of(), ResetLoansCommand.MESSAGE_USAGE); - Password password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); + String password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); return new ResetLoansCommand(password); } diff --git a/src/main/java/loanbook/logic/parser/SetEmailCommandParser.java b/src/main/java/loanbook/logic/parser/SetEmailCommandParser.java index 1da017ca543d..f85f36c524af 100644 --- a/src/main/java/loanbook/logic/parser/SetEmailCommandParser.java +++ b/src/main/java/loanbook/logic/parser/SetEmailCommandParser.java @@ -7,7 +7,6 @@ import loanbook.logic.commands.SetEmailCommand; import loanbook.logic.parser.exceptions.ParseException; -import loanbook.model.Password; import loanbook.model.loan.Email; /** @@ -27,7 +26,7 @@ public SetEmailCommand parse(String args) throws ParseException { SetEmailCommand.MESSAGE_USAGE); Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); - Password password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); + String password = ParserUtil.parsePass(argMultimap.getValue(PREFIX_PASSWORD).get()); return new SetEmailCommand(email, password); } diff --git a/src/main/java/loanbook/logic/parser/SetPasswordCommandParser.java b/src/main/java/loanbook/logic/parser/SetPasswordCommandParser.java index b500110038e6..d19d8de439cd 100644 --- a/src/main/java/loanbook/logic/parser/SetPasswordCommandParser.java +++ b/src/main/java/loanbook/logic/parser/SetPasswordCommandParser.java @@ -28,9 +28,7 @@ public SetPasswordCommand parse(String args) throws ParseException { if (!Password.isValidPass(newPass)) { throw new ParseException(Password.MESSAGE_PASSWORD_CONSTRAINTS); } - Password oldPassInput = new Password(oldPass); - Password newPassInput = new Password(newPass); - return new SetPasswordCommand(oldPassInput, newPassInput); + return new SetPasswordCommand(oldPass, newPass); } } diff --git a/src/main/java/loanbook/model/Model.java b/src/main/java/loanbook/model/Model.java index 05dc5c6c93c7..299db549a847 100644 --- a/src/main/java/loanbook/model/Model.java +++ b/src/main/java/loanbook/model/Model.java @@ -98,6 +98,11 @@ public interface Model { */ String getPass(); + /** + * Get password salt; + */ + String getSalt(); + /** * Get next available Loan ID. */ diff --git a/src/main/java/loanbook/model/ModelManager.java b/src/main/java/loanbook/model/ModelManager.java index ccdc831bf73b..49447a3882d7 100644 --- a/src/main/java/loanbook/model/ModelManager.java +++ b/src/main/java/loanbook/model/ModelManager.java @@ -257,6 +257,11 @@ public String getPass() { return preference.getPass(); } + @Override + public String getSalt() { + return preference.getSalt(); + } + //=========== Utility ================================================================================== @Override diff --git a/src/main/java/loanbook/model/Password.java b/src/main/java/loanbook/model/Password.java index cbbad502a6d5..c8a16b42ee38 100644 --- a/src/main/java/loanbook/model/Password.java +++ b/src/main/java/loanbook/model/Password.java @@ -1,5 +1,15 @@ package loanbook.model; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.spec.InvalidKeySpecException; +import java.util.Arrays; +import java.util.Base64; +import java.util.Random; + +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; + /** * Model a password object, performs hash encryption and decryption. */ @@ -7,11 +17,62 @@ public class Password { public static final String MESSAGE_PASSWORD_CONSTRAINTS = "Password should be alphanumeric of at least 6 characters and up to 10 characters.\n"; + private static final Random RANDOM = new SecureRandom(); + private static final String ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private static final int ITERATIONS = 10000; + private static final int KEY_LENGTH = 256; + private String password; - public Password(String pass) { - password = Password.encrypt(pass); + public Password(String pass, String salt) { + password = Password.encrypt(pass, salt); + } + + /** + * Generate salt for hashing. + * @return salt key. + */ + //@@author {wn96}-reused + //http://www.appsdeveloperblog.com/encrypt-user-password-example-java/ + public static String getSalt() { + StringBuilder returnValue = new StringBuilder(KEY_LENGTH); + for (int i = 0; i < KEY_LENGTH; i++) { + returnValue.append(ALPHABET.charAt(RANDOM.nextInt(ALPHABET.length()))); + } + return new String(returnValue); } + //@@author + + /** + * Algorithm to hash string. + * @param password + * @param salt + * @return hashed passsword. + */ + //@@author {wn96}-reused + //http://www.appsdeveloperblog.com/encrypt-user-password-example-java/ + private static byte[] hash(char[] password, byte[] salt) { + PBEKeySpec spec = new PBEKeySpec(password, salt, ITERATIONS, KEY_LENGTH); + Arrays.fill(password, Character.MIN_VALUE); + try { + SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1"); + return skf.generateSecret(spec).getEncoded(); + } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { + throw new AssertionError("Error while hashing a password: " + e.getMessage(), e); + } finally { + spec.clearPassword(); + } + } + //@@author + + //@@author {wn96}-reused + //http://www.appsdeveloperblog.com/encrypt-user-password-example-java/ + private static String generateSecurePassword(String password, String salt) { + byte[] securePassword = hash(password.toCharArray(), salt.getBytes()); + + return Base64.getEncoder().encodeToString(securePassword); + } + //@@author /** * Check if hashed currentPassword and hashed oldPassInput is same when decrypted. @@ -19,35 +80,46 @@ public Password(String pass) { * @param oldPassInput Input to check if it is same as current password. * @return Boolean of whether input matches with current password. */ - public static boolean isSamePassword(String currentPass, Password oldPassInput) { - String curr = Password.decrypt(currentPass); - String toCheck = oldPassInput.decrypt(); - return curr.equals(toCheck); + public static boolean isSamePassword(String currentPass, String oldPassInput, String salt) { + return verifyUserPassword(oldPassInput, currentPass, salt); } /** - * Returns true if a given string is a valid password + * Check if input password is the same as the current password. + * @param providedPassword + * @param securedPassword + * @param salt + * @return */ - public static boolean isValidPass(String objString) { - return objString.matches("^[a-zA-Z0-9]{6,10}$"); - } + //@@author {wn96}-reused + //http://www.appsdeveloperblog.com/encrypt-user-password-example-java/ + private static boolean verifyUserPassword(String providedPassword, + String securedPassword, String salt) { + boolean returnValue = false; - private static String decrypt(String pass) { - return pass.substring(0, pass.length() - "-encrypt".length()); - } + // Generate New secure password with the same salt + String newSecurePassword = generateSecurePassword(providedPassword, salt); - private String decrypt() { + // Check if two passwords are equal + returnValue = newSecurePassword.equalsIgnoreCase(securedPassword); - return password.substring(0, password.length() - "-encrypt".length()); + return returnValue; } + //@@author - private static String encrypt(String pass) { + /** + * Returns true if a given string is a valid password. + */ + public static boolean isValidPass(String objString) { + return objString.matches("^[a-zA-Z0-9]{6,10}$"); + } - return pass + "-encrypt"; + private static String encrypt(String pass, String salt) { + return generateSecurePassword(pass, salt); } /** - * For saving to database + * For saving to database. * @return Hashed String */ public String hashedPassword() { @@ -58,6 +130,6 @@ public String hashedPassword() { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Password // instanceof handles nulls - && decrypt(password).equals(((Password) other).decrypt())); // state check + && password.equals(((Password) other).password)); // state check } } diff --git a/src/main/java/loanbook/model/UserPrefs.java b/src/main/java/loanbook/model/UserPrefs.java index 51a90460e8a0..427f3870691c 100644 --- a/src/main/java/loanbook/model/UserPrefs.java +++ b/src/main/java/loanbook/model/UserPrefs.java @@ -15,13 +15,21 @@ public class UserPrefs { private String password; private String defaultEmail; private Path loanBookFilePath = Paths.get("data" , "loanbook.xml"); + private String passwordSalt; public UserPrefs() { setGuiSettings(500, 500, 0, 0); - password = (new Password("a12345")).hashedPassword(); // Default password is set to a12345 + passwordSalt = Password.getSalt(); + password = (new Password("a12345", passwordSalt)).hashedPassword(); // Default password is set to a12345 defaultEmail = "default"; } + public UserPrefs(String salt) { + this(); + passwordSalt = salt; + password = (new Password("a12345", passwordSalt)).hashedPassword(); + } + public GuiSettings getGuiSettings() { return guiSettings == null ? new GuiSettings() : guiSettings; } @@ -46,6 +54,10 @@ public void setPass(Password pass) { password = pass.hashedPassword(); } + public String getSalt() { + return passwordSalt; + } + public String getPass() { return password; } diff --git a/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java b/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java index b56136b1b222..a09b5307b2b2 100644 --- a/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java +++ b/src/test/java/loanbook/logic/commands/DeleteBikeCommandTest.java @@ -31,11 +31,12 @@ public class DeleteBikeCommandTest { private Model model = new ModelManager(getTypicalLoanBook(), new UserPrefs()); private CommandHistory commandHistory = new CommandHistory(); + private String pass = "a12345"; + private Password dummyPassword = new Password(pass, model.getSalt()); @Test public void execute_validNameUnfilteredList_success() { - Password pass = new Password("a12345"); - model.setPass(pass); + model.setPass(dummyPassword); Bike bikeToDelete = model.getFilteredBikeList().get(INDEX_FIRST_LOAN.getZeroBased()); DeleteBikeCommand deleteBikeCommand = new DeleteBikeCommand(bikeToDelete.getName(), pass); @@ -52,15 +53,14 @@ public void execute_validNameUnfilteredList_success() { @Test public void execute_invalidNameUnfilteredList_throwsCommandException() { DeleteBikeCommand deleteBikeCommand = - new DeleteBikeCommand(new Name(NOEXIST_NAME_BIKE), new Password(model.getPass())); + new DeleteBikeCommand(new Name(NOEXIST_NAME_BIKE), pass); assertCommandFailure(deleteBikeCommand, model, commandHistory, MESSAGE_BIKE_NOT_FOUND); } @Test public void execute_validNameFilteredList_success() { - Password pass = new Password("a12345"); - model.setPass(pass); + model.setPass(dummyPassword); showBikeAtIndex(model, INDEX_FIRST_LOAN); @@ -79,8 +79,7 @@ public void execute_validNameFilteredList_success() { @Test public void execute_bikeNotInFilteredList_success() { - Password pass = new Password("a12345"); - model.setPass(pass); + model.setPass(dummyPassword); // Have at least 2 bikes in the list assertTrue(model.getLoanBook().getBikeList().size() >= 2); @@ -104,8 +103,7 @@ public void execute_bikeNotInFilteredList_success() { @Test public void executeUndoRedo_validNameUnfilteredList_success() throws Exception { - Password pass = new Password("a12345"); - model.setPass(pass); + model.setPass(dummyPassword); Bike bikeToDelete = model.getFilteredBikeList().get(INDEX_FIRST_LOAN.getZeroBased()); DeleteBikeCommand deleteBikeCommand = new DeleteBikeCommand(bikeToDelete.getName(), pass); @@ -127,8 +125,7 @@ public void executeUndoRedo_validNameUnfilteredList_success() throws Exception { @Test public void executeUndoRedo_invalidBikeName_failure() { - Password pass = new Password("a12345"); - model.setPass(pass); + model.setPass(dummyPassword); DeleteBikeCommand deleteBikeCommand = new DeleteBikeCommand(new Name(NOEXIST_NAME_BIKE), pass); @@ -142,8 +139,7 @@ public void executeUndoRedo_invalidBikeName_failure() { @Test public void equals() { - Password pass = new Password("a12345"); - model.setPass(pass); + model.setPass(dummyPassword); DeleteBikeCommand deleteFirstCommand = new DeleteBikeCommand(new Name(VALID_NAME_BIKE1), pass); DeleteBikeCommand deleteSecondCommand = new DeleteBikeCommand(new Name(VALID_NAME_BIKE2), pass); diff --git a/src/test/java/loanbook/logic/commands/DeleteCommandTest.java b/src/test/java/loanbook/logic/commands/DeleteCommandTest.java index 972e46a45d27..9faeb2443746 100644 --- a/src/test/java/loanbook/logic/commands/DeleteCommandTest.java +++ b/src/test/java/loanbook/logic/commands/DeleteCommandTest.java @@ -29,14 +29,15 @@ public class DeleteCommandTest { private Model model = new ModelManager(getTypicalLoanBook(), new UserPrefs()); private CommandHistory commandHistory = new CommandHistory(); + private String pass = "a12345"; + private Password dummyPassword = new Password(pass, model.getSalt()); @Test public void execute_validIndexUnfilteredList_success() { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); Loan loanToDelete = model.getFilteredLoanList().get(INDEX_FIRST_LOAN.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, new Password(pass)); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, pass); String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_LOAN_SUCCESS, loanToDelete); @@ -50,21 +51,19 @@ public void execute_validIndexUnfilteredList_success() { @Test public void execute_invalidIndexUnfilteredList_throwsCommandException() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredLoanList().size() + 1); - Password expectedPassword = new Password("a12345"); - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex, expectedPassword); + DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex, pass); assertCommandFailure(deleteCommand, model, commandHistory, Messages.MESSAGE_INVALID_LOAN_DISPLAYED_INDEX); } @Test public void execute_validIndexFilteredList_success() { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); showLoanAtIndex(model, INDEX_FIRST_LOAN); Loan loanToDelete = model.getFilteredLoanList().get(INDEX_FIRST_LOAN.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, new Password(pass)); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, pass); String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_LOAN_SUCCESS, loanToDelete); @@ -78,8 +77,7 @@ public void execute_validIndexFilteredList_success() { @Test public void execute_invalidIndexFilteredList_throwsCommandException() { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); showLoanAtIndex(model, INDEX_FIRST_LOAN); @@ -87,18 +85,17 @@ public void execute_invalidIndexFilteredList_throwsCommandException() { // ensures that outOfBoundIndex is still in bounds of loan book list assertTrue(outOfBoundIndex.getZeroBased() < model.getLoanBook().getLoanList().size()); - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex, new Password(pass)); + DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex, pass); assertCommandFailure(deleteCommand, model, commandHistory, Messages.MESSAGE_INVALID_LOAN_DISPLAYED_INDEX); } @Test public void executeUndoRedo_validIndexUnfilteredList_success() throws Exception { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); Loan loanToDelete = model.getFilteredLoanList().get(INDEX_FIRST_LOAN.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, new Password(pass)); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, pass); Model expectedModel = new ModelManager(model.getLoanBook(), new UserPrefs()); expectedModel.deleteLoan(loanToDelete); expectedModel.commitLoanBook(); @@ -117,11 +114,10 @@ public void executeUndoRedo_validIndexUnfilteredList_success() throws Exception @Test public void executeUndoRedo_invalidIndexUnfilteredList_failure() { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); Index outOfBoundIndex = Index.fromOneBased(model.getFilteredLoanList().size() + 1); - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex, new Password(pass)); + DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex, pass); // execution failed -> loan book state not added into model assertCommandFailure(deleteCommand, model, commandHistory, Messages.MESSAGE_INVALID_LOAN_DISPLAYED_INDEX); @@ -140,10 +136,9 @@ public void executeUndoRedo_invalidIndexUnfilteredList_failure() { */ @Test public void executeUndoRedo_validIndexFilteredList_sameLoanDeleted() throws Exception { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, new Password(pass)); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, pass); Model expectedModel = new ModelManager(model.getLoanBook(), new UserPrefs()); showLoanAtIndex(model, INDEX_SECOND_LOAN); @@ -166,17 +161,16 @@ public void executeUndoRedo_validIndexFilteredList_sameLoanDeleted() throws Exce @Test public void equals() { - String pass = "a12345"; - model.setPass(new Password(pass)); + model.setPass(dummyPassword); - DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_LOAN, new Password(pass)); - DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_LOAN, new Password(pass)); + DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_LOAN, pass); + DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_LOAN, pass); // same object -> returns true assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); // same values -> returns true - DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_LOAN, new Password(pass)); + DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_LOAN, pass); assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); // different types -> returns false diff --git a/src/test/java/loanbook/logic/commands/PasswordProtectedCommandTest.java b/src/test/java/loanbook/logic/commands/PasswordProtectedCommandTest.java index 4672ab25869a..d40dab70f1b3 100644 --- a/src/test/java/loanbook/logic/commands/PasswordProtectedCommandTest.java +++ b/src/test/java/loanbook/logic/commands/PasswordProtectedCommandTest.java @@ -11,7 +11,6 @@ import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; import loanbook.model.ModelManager; -import loanbook.model.Password; import loanbook.model.UserPrefs; import loanbook.testutil.Assert; @@ -21,8 +20,8 @@ public class PasswordProtectedCommandTest { public void assertCorrectPassword_correctAndIncorrectPassword_throwsCommandException() { Model model = new ModelManager(getTypicalLoanBook(), new UserPrefs()); - Password expectedCorrectPassword = new Password("a12345"); - Password expectedIncorrectPassword = new Password("incorrect"); + String expectedCorrectPassword = "a12345"; + String expectedIncorrectPassword = "incorrect"; PasswordProtectedCommandStub correctStub = new PasswordProtectedCommandStub(expectedCorrectPassword); PasswordProtectedCommandStub incorrectStub = new PasswordProtectedCommandStub(expectedIncorrectPassword); @@ -39,9 +38,9 @@ public void assertCorrectPassword_correctAndIncorrectPassword_throwsCommandExcep @Test public void equalityTest() { - PasswordProtectedCommandStub command1 = new PasswordProtectedCommandStub(new Password("coverage")); - PasswordProtectedCommandStub command2 = new PasswordProtectedCommandStub(new Password("coverage")); - PasswordProtectedCommandStub command3 = new PasswordProtectedCommandStub(new Password("galore")); + PasswordProtectedCommandStub command1 = new PasswordProtectedCommandStub("coverage"); + PasswordProtectedCommandStub command2 = new PasswordProtectedCommandStub("coverage"); + PasswordProtectedCommandStub command3 = new PasswordProtectedCommandStub("galore"); assertEquals(command1, command1); // Same instance assertEquals(command1, command2); // Same password @@ -50,7 +49,7 @@ public void equalityTest() { } private static class PasswordProtectedCommandStub extends PasswordProtectedCommand { - PasswordProtectedCommandStub(Password password) { + PasswordProtectedCommandStub(String password) { super(password, "TEST_COMMAND"); } diff --git a/src/test/java/loanbook/logic/commands/RemindCommandTest.java b/src/test/java/loanbook/logic/commands/RemindCommandTest.java index 5c04da9684e6..62d5ea84ab62 100644 --- a/src/test/java/loanbook/logic/commands/RemindCommandTest.java +++ b/src/test/java/loanbook/logic/commands/RemindCommandTest.java @@ -18,7 +18,6 @@ import loanbook.logic.commands.exceptions.CommandException; import loanbook.model.Model; import loanbook.model.ModelManager; -import loanbook.model.Password; import loanbook.model.UserPrefs; import loanbook.model.loan.LoanId; import loanbook.model.loan.LoanStatus; @@ -84,7 +83,7 @@ public void execute_sendToReturnedLoan_throwsCommandException() throws Exception @Test public void execute_sendToDeletedLoan_throwsCommandException() throws Exception { Model modelStub = new ModelManager(getTypicalLoanBook(), new UserPrefs()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, new Password("a12345")); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_LOAN, "a12345"); deleteCommand.execute(modelStub, commandHistory); LoanId id = new LoanId("0"); diff --git a/src/test/java/loanbook/logic/commands/ResetAllCommandTest.java b/src/test/java/loanbook/logic/commands/ResetAllCommandTest.java index f6d478b9308e..5862208755a8 100644 --- a/src/test/java/loanbook/logic/commands/ResetAllCommandTest.java +++ b/src/test/java/loanbook/logic/commands/ResetAllCommandTest.java @@ -12,13 +12,12 @@ import loanbook.logic.CommandHistory; import loanbook.model.Model; import loanbook.model.ModelManager; -import loanbook.model.Password; import loanbook.model.UserPrefs; public class ResetAllCommandTest { - private static final Password CORRECT_PASSWORD = new Password("a12345"); - private static final Password INCORRECT_PASSWORD = new Password("incorrectPass"); + private static final String CORRECT_PASSWORD = "a12345"; + private static final String INCORRECT_PASSWORD = "incorrectPass"; private CommandHistory commandHistory = new CommandHistory(); @Test @@ -54,9 +53,9 @@ public void execute_wrongPassword_commandExceptionThrown() { @Test public void equalityTest() { - ResetAllCommand resetAllCommand1 = new ResetAllCommand(new Password("identical")); - ResetAllCommand resetAllCommand2 = new ResetAllCommand(new Password("identical")); - ResetAllCommand resetAllCommand3 = new ResetAllCommand(new Password("different")); + ResetAllCommand resetAllCommand1 = new ResetAllCommand("identical"); + ResetAllCommand resetAllCommand2 = new ResetAllCommand("identical"); + ResetAllCommand resetAllCommand3 = new ResetAllCommand("different"); assertEquals(resetAllCommand1, resetAllCommand1); // Same instance assertEquals(resetAllCommand1, resetAllCommand2); // Same password diff --git a/src/test/java/loanbook/logic/commands/ResetLoansCommandTest.java b/src/test/java/loanbook/logic/commands/ResetLoansCommandTest.java index dedfc4d09a9e..e97d1c30978e 100644 --- a/src/test/java/loanbook/logic/commands/ResetLoansCommandTest.java +++ b/src/test/java/loanbook/logic/commands/ResetLoansCommandTest.java @@ -8,7 +8,6 @@ import loanbook.logic.CommandHistory; import loanbook.model.Model; import loanbook.model.ModelManager; -import loanbook.model.Password; import loanbook.model.UserPrefs; public class ResetLoansCommandTest { @@ -21,7 +20,7 @@ public void execute_emptyLoanBook_success() { Model expectedModel = new ModelManager(); expectedModel.commitLoanBook(); - Password expectedPassword = new Password("a12345"); + String expectedPassword = "a12345"; ResetLoansCommand command = new ResetLoansCommand(expectedPassword); assertCommandSuccess(command, model, commandHistory, ResetLoansCommand.MESSAGE_RESET_LOANS_SUCCESS, @@ -36,7 +35,7 @@ public void execute_nonEmptyLoanBook_success() { expectedModel.resetId(); expectedModel.commitLoanBook(); - Password expectedPassword = new Password("a12345"); + String expectedPassword = "a12345"; ResetLoansCommand command = new ResetLoansCommand(expectedPassword); assertCommandSuccess(command, model, commandHistory, ResetLoansCommand.MESSAGE_RESET_LOANS_SUCCESS, diff --git a/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java b/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java index 656a6a070568..8a3d60e43986 100644 --- a/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java +++ b/src/test/java/loanbook/logic/commands/SetEmailCommandTest.java @@ -31,7 +31,7 @@ public class SetEmailCommandTest { @Test public void constructor_nullNewEmail_throwsNullPointerException() { thrown.expect(NullPointerException.class); - new SetEmailCommand(null, new Password("a12345")); + new SetEmailCommand(null, "a12345"); } @Test @@ -46,7 +46,7 @@ public void execute_setemailSuccessful() throws Exception { CommandResult commandResult = new SetEmailCommand( - new Email(VALID_USER_EMAIL2), new Password(PASSWORD2)).execute(modelStub, commandHistory); + new Email(VALID_USER_EMAIL2), PASSWORD2).execute(modelStub, commandHistory); assertEquals(SetEmailCommand.MESSAGE_SUCCESS, commandResult.feedbackToUser); assertEquals(EMPTY_COMMAND_HISTORY, commandHistory); @@ -54,7 +54,7 @@ public void execute_setemailSuccessful() throws Exception { @Test public void execute_duplicateNewEmail_throwsCommandException() throws Exception { - SetEmailCommand command = new SetEmailCommand(new Email(VALID_USER_EMAIL1), new Password(PASSWORD2)); + SetEmailCommand command = new SetEmailCommand(new Email(VALID_USER_EMAIL1), PASSWORD2); ModelStubWithUserEmail modelStub = new ModelStubWithUserEmail(); thrown.expect(CommandException.class); @@ -65,7 +65,7 @@ public void execute_duplicateNewEmail_throwsCommandException() throws Exception @Test public void execute_invalidNewEmail_throwsCommandException() throws Exception { SetEmailCommand command = new SetEmailCommand( - new Email("invalid_example@gmail.com"), new Password(PASSWORD2)); + new Email("invalid_example@gmail.com"), PASSWORD2); ModelStubWithUserEmail modelStub = new ModelStubWithUserEmail(); thrown.expect(CommandException.class); @@ -75,7 +75,7 @@ public void execute_invalidNewEmail_throwsCommandException() throws Exception { @Test public void execute_wrongAppPassword_throwsCommandException() throws Exception { - SetEmailCommand command = new SetEmailCommand(new Email(VALID_USER_EMAIL2), new Password(PASSWORD1)); + SetEmailCommand command = new SetEmailCommand(new Email(VALID_USER_EMAIL2), PASSWORD1); ModelStubWithUserEmail modelStub = new ModelStubWithUserEmail(); thrown.expect(CommandException.class); @@ -87,7 +87,7 @@ public void execute_wrongAppPassword_throwsCommandException() throws Exception { public void equals() { Email email1 = new Email(VALID_USER_EMAIL1); Email email2 = new Email(VALID_USER_EMAIL2); - Password password = new Password("a12345"); + String password = "a12345"; final SetEmailCommand standardCommand = new SetEmailCommand(email1, password); SetEmailCommand commandWithSameValues = new SetEmailCommand(email1, password); @@ -112,7 +112,8 @@ public void equals() { */ private class ModelStubWithUserEmail extends ModelStub { private String defaultEmail = VALID_USER_EMAIL1; - private String password = (new Password("a12345")).hashedPassword(); + private String dummySalt = "1"; + private String password = (new Password("a12345", dummySalt)).hashedPassword(); @Override public void setMyEmail(String email) { @@ -128,5 +129,10 @@ public String getMyEmail() { public String getPass() { return password; } + + @Override + public String getSalt() { + return dummySalt; + } } } diff --git a/src/test/java/loanbook/logic/commands/SetPasswordCommandTest.java b/src/test/java/loanbook/logic/commands/SetPasswordCommandTest.java index 815dad644f3b..6edd43e1bfc7 100644 --- a/src/test/java/loanbook/logic/commands/SetPasswordCommandTest.java +++ b/src/test/java/loanbook/logic/commands/SetPasswordCommandTest.java @@ -16,31 +16,31 @@ import loanbook.testutil.ModelStub; public class SetPasswordCommandTest { - private static final CommandHistory EMPTY_COMMAND_HISTORY = new CommandHistory(); @Rule public ExpectedException thrown = ExpectedException.none(); private CommandHistory commandHistory = new CommandHistory(); + private String dummySalt = "1"; @Test public void constructor_nullOldPass_throwsNullPointerException() { thrown.expect(NullPointerException.class); - new SetPasswordCommand(null, new Password("123")); + new SetPasswordCommand(null, "123"); } @Test public void constructor_nullNewPass_throwsNullPointerException() { thrown.expect(NullPointerException.class); - new SetPasswordCommand(new Password("123"), null); + new SetPasswordCommand("123", null); } @Test public void equals() { - Password oldPass = new Password("12345678"); - Password newPass = new Password("abcdefgh"); - Password wrongPass = new Password("$$$$$$$$"); + String oldPass = "12345678"; + String newPass = "abcdefgh"; + String wrongPass = "$$$$$$$$"; SetPasswordCommand addOldPassCommand = new SetPasswordCommand(oldPass, newPass); SetPasswordCommand wrongPassCommand = new SetPasswordCommand(wrongPass, newPass); @@ -63,8 +63,8 @@ public void equals() { @Test public void execute_newPasswordAcceptedByModel_setPassSuccessful() throws Exception { - Password currentPass = new Password("a12345"); - Password newPass = new Password("abcdefgh"); + String currentPass = "a12345"; + String newPass = "abcdefgh"; ModelStubWithPassword modelStub = new ModelStubWithPassword(); CommandResult commandResult = new SetPasswordCommand(currentPass, newPass).execute(modelStub, commandHistory); @@ -76,13 +76,13 @@ public void execute_newPasswordAcceptedByModel_setPassSuccessful() throws Except @Test public void execute_wrongCurrentPassword_throwsCommandException() throws Exception { - Password wrongPass = new Password("xxxxxxxx"); - Password newPass = new Password("abcdefgh"); + String wrongPass = "xxxxxxxx"; + String newPass = "abcdefgh"; SetPasswordCommand setPasswordCommand = new SetPasswordCommand(wrongPass, newPass); ModelStubWithPassword modelStub = new ModelStubWithPassword(); thrown.expect(CommandException.class); - thrown.expectMessage(Messages.MESSAGE_INVALID_OLD_PASS); + thrown.expectMessage(Messages.MESSAGE_INVALID_PASSWORD); setPasswordCommand.execute(modelStub, commandHistory); } @@ -92,7 +92,7 @@ public void execute_sameCurrentPassword_throwsCommandException() throws Exceptio String pass = "a12345"; SetPasswordCommand setPasswordCommand = - new SetPasswordCommand(new Password(pass), new Password(pass)); + new SetPasswordCommand(pass, pass); thrown.expect(CommandException.class); thrown.expectMessage(Messages.MESSAGE_SAME_AS_CURRENT_PASSWORD); @@ -103,7 +103,7 @@ public void execute_sameCurrentPassword_throwsCommandException() throws Exceptio * A Model stub with a functional setPass() and getPass(). */ private class ModelStubWithPassword extends ModelStub { - private Password currPass = new Password("a12345"); + private Password currPass = new Password("a12345", dummySalt); @Override public void setPass(Password pass) { @@ -115,6 +115,11 @@ public String getPass() { return currPass.hashedPassword(); } + @Override + public String getSalt() { + return dummySalt; + } + @Override public LoanId getNextAvailableId() { throw new AssertionError("This method should not be called."); diff --git a/src/test/java/loanbook/logic/parser/DeleteBikeCommandParserTest.java b/src/test/java/loanbook/logic/parser/DeleteBikeCommandParserTest.java index 2b25f90c82e1..d7532abcc1db 100644 --- a/src/test/java/loanbook/logic/parser/DeleteBikeCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/DeleteBikeCommandParserTest.java @@ -7,7 +7,6 @@ import org.junit.Test; import loanbook.logic.commands.DeleteBikeCommand; -import loanbook.model.Password; import loanbook.model.loan.Name; public class DeleteBikeCommandParserTest { @@ -17,7 +16,7 @@ public class DeleteBikeCommandParserTest { @Test public void parse_validArgs_returnsDeleteBikeCommand() { assertParseSuccess(parser, " n/Bike001 x/a12345", - new DeleteBikeCommand(new Name("Bike001"), new Password("a12345"))); + new DeleteBikeCommand(new Name("Bike001"), "a12345")); } @Test diff --git a/src/test/java/loanbook/logic/parser/DeleteCommandParserTest.java b/src/test/java/loanbook/logic/parser/DeleteCommandParserTest.java index 51b9a2bcfc73..9376ce793436 100644 --- a/src/test/java/loanbook/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/DeleteCommandParserTest.java @@ -8,7 +8,6 @@ import org.junit.Test; import loanbook.logic.commands.DeleteCommand; -import loanbook.model.Password; /** * As we are only doing white-box testing, our test cases do not cover path variations @@ -23,7 +22,7 @@ public class DeleteCommandParserTest { @Test public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, " i/1 x/a12345", new DeleteCommand(INDEX_FIRST_LOAN, new Password("a12345"))); + assertParseSuccess(parser, " i/1 x/a12345", new DeleteCommand(INDEX_FIRST_LOAN, "a12345")); } @Test diff --git a/src/test/java/loanbook/logic/parser/LoanBookParserTest.java b/src/test/java/loanbook/logic/parser/LoanBookParserTest.java index 3756df7a9d0e..35e126fbbfae 100644 --- a/src/test/java/loanbook/logic/parser/LoanBookParserTest.java +++ b/src/test/java/loanbook/logic/parser/LoanBookParserTest.java @@ -42,7 +42,6 @@ import loanbook.logic.commands.SetPasswordCommand; import loanbook.logic.commands.UndoCommand; import loanbook.logic.parser.exceptions.ParseException; -import loanbook.model.Password; import loanbook.model.bike.Bike; import loanbook.model.loan.Email; import loanbook.model.loan.Loan; @@ -79,20 +78,19 @@ public void parseCommand_add() throws Exception { @Test public void parseCommand_clear() throws Exception { - String samplePasswordUserInput = "a12345"; - Password samplePassword = new Password(samplePasswordUserInput); + String samplePassword = "a12345"; ResetLoansCommand expectedCommand = new ResetLoansCommand(samplePassword); assertEquals(expectedCommand, - parser.parseCommand(ResetLoansCommand.COMMAND_WORD + " " + PREFIX_PASSWORD + samplePasswordUserInput)); + parser.parseCommand(ResetLoansCommand.COMMAND_WORD + " " + PREFIX_PASSWORD + samplePassword)); } @Test public void parseCommand_delete() throws Exception { DeleteCommand command = (DeleteCommand) parser.parseCommand( DeleteCommand.COMMAND_WORD + " i/" + INDEX_FIRST_LOAN.getOneBased() + " x/" + "a12345"); - Password pass = new Password("a12345"); + String pass = "a12345"; assertEquals(new DeleteCommand(INDEX_FIRST_LOAN, pass), command); } @@ -123,7 +121,7 @@ public void parseCommand_find() throws Exception { public void parseCommand_setemail() throws Exception { SetEmailCommand command = (SetEmailCommand) parser.parseCommand( SetEmailCommand.COMMAND_WORD + USER_EMAIL1_DESC + PASSWORD2_DESC); - assertEquals(new SetEmailCommand(new Email(VALID_USER_EMAIL1), new Password(PASSWORD2)), command); + assertEquals(new SetEmailCommand(new Email(VALID_USER_EMAIL1), PASSWORD2), command); } @Test @@ -191,7 +189,7 @@ public void parseCommand_setpass() throws Exception { String newPass = "newPass"; SetPasswordCommand command = (SetPasswordCommand) parser.parseCommand( SetPasswordCommand.COMMAND_WORD + " " + oldPass + " " + newPass); - assertEquals(new SetPasswordCommand(new Password(oldPass), new Password(newPass)), command); + assertEquals(new SetPasswordCommand(oldPass, newPass), command); } @Test diff --git a/src/test/java/loanbook/logic/parser/ResetAllCommandParserTest.java b/src/test/java/loanbook/logic/parser/ResetAllCommandParserTest.java index 6708eacce380..7ec68b96461a 100644 --- a/src/test/java/loanbook/logic/parser/ResetAllCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/ResetAllCommandParserTest.java @@ -7,7 +7,6 @@ import org.junit.Test; import loanbook.logic.commands.ResetAllCommand; -import loanbook.model.Password; public class ResetAllCommandParserTest { @@ -17,8 +16,7 @@ public class ResetAllCommandParserTest { @Test public void parse_validArgs_returnsResetAllCommand() { - Password expectedPassword = new Password(VALID_PASSWORD_STRING); - assertParseSuccess(parser, " x/" + VALID_PASSWORD_STRING, new ResetAllCommand(expectedPassword)); + assertParseSuccess(parser, " x/" + VALID_PASSWORD_STRING, new ResetAllCommand(VALID_PASSWORD_STRING)); } @Test diff --git a/src/test/java/loanbook/logic/parser/SetEmailCommandParserTest.java b/src/test/java/loanbook/logic/parser/SetEmailCommandParserTest.java index b9abbaae430b..89219a2e1916 100644 --- a/src/test/java/loanbook/logic/parser/SetEmailCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/SetEmailCommandParserTest.java @@ -12,7 +12,6 @@ import org.junit.Test; import loanbook.logic.commands.SetEmailCommand; -import loanbook.model.Password; import loanbook.model.loan.Email; public class SetEmailCommandParserTest { @@ -22,7 +21,7 @@ public class SetEmailCommandParserTest { public void parse_allFieldsPresent_success() { assertParseSuccess(parser, PREAMBLE_WHITESPACE + USER_EMAIL1_DESC + PASSWORD2_DESC, - new SetEmailCommand(new Email(VALID_USER_EMAIL1), new Password(PASSWORD2))); + new SetEmailCommand(new Email(VALID_USER_EMAIL1), PASSWORD2)); } @Test diff --git a/src/test/java/loanbook/logic/parser/SetPasswordCommandParserTest.java b/src/test/java/loanbook/logic/parser/SetPasswordCommandParserTest.java index 9fbe51c7b1c7..2f2dd7c79a2c 100644 --- a/src/test/java/loanbook/logic/parser/SetPasswordCommandParserTest.java +++ b/src/test/java/loanbook/logic/parser/SetPasswordCommandParserTest.java @@ -31,7 +31,7 @@ public void parse_invalidPassword_failure() { public void parse_allFieldsSpecified_success() { String userInput = "oldPass newPass"; - SetPasswordCommand expectedCommand = new SetPasswordCommand(new Password("oldPass"), new Password ("newPass")); + SetPasswordCommand expectedCommand = new SetPasswordCommand("oldPass", "newPass"); assertParseSuccess(parser, userInput, expectedCommand); } } diff --git a/src/test/java/loanbook/model/ModelManagerTest.java b/src/test/java/loanbook/model/ModelManagerTest.java index bd43b0f1d3a9..5e1af79534eb 100644 --- a/src/test/java/loanbook/model/ModelManagerTest.java +++ b/src/test/java/loanbook/model/ModelManagerTest.java @@ -108,15 +108,15 @@ public void getFilteredLoanList_modifyList_throwsUnsupportedOperationException() @Test public void getPass_returnsTrue() { String currPass = modelManager.getPass(); - assertTrue(Password.isSamePassword(currPass, new Password("a12345"))); + assertTrue(Password.isSamePassword(currPass, "a12345", modelManager.getSalt())); } @Test public void setPass_returnsTrue() { - Password newPass = new Password("newpassword"); - modelManager.setPass(newPass); + String newPass = "newpassword"; + modelManager.setPass(new Password(newPass, modelManager.getSalt())); String currPass = modelManager.getPass(); - assertTrue(Password.isSamePassword(currPass, newPass)); + assertTrue(Password.isSamePassword(currPass, newPass, modelManager.getSalt())); } @Test diff --git a/src/test/java/loanbook/storage/JsonUserPrefsStorageTest.java b/src/test/java/loanbook/storage/JsonUserPrefsStorageTest.java index 3306e665f172..0ca59046bf83 100644 --- a/src/test/java/loanbook/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/loanbook/storage/JsonUserPrefsStorageTest.java @@ -58,29 +58,8 @@ private Path addToTestDataPathIfNotNull(String userPrefsFileInTestDataFolder) { : null; } - @Test - public void readUserPrefs_fileInOrder_successfullyRead() throws DataConversionException { - UserPrefs expected = getTypicalUserPrefs(); - UserPrefs actual = readUserPrefs("TypicalUserPref.json").get(); - assertEquals(expected, actual); - } - - @Test - public void readUserPrefs_valuesMissingFromFile_defaultValuesUsed() throws DataConversionException { - UserPrefs actual = readUserPrefs("EmptyUserPrefs.json").get(); - assertEquals(new UserPrefs(), actual); - } - - @Test - public void readUserPrefs_extraValuesInFile_extraValuesIgnored() throws DataConversionException { - UserPrefs expected = getTypicalUserPrefs(); - UserPrefs actual = readUserPrefs("ExtraValuesUserPref.json").get(); - - assertEquals(expected, actual); - } - private UserPrefs getTypicalUserPrefs() { - UserPrefs userPrefs = new UserPrefs(); + UserPrefs userPrefs = new UserPrefs("1"); // Ensure same salt between files. userPrefs.setGuiSettings(1000, 500, 300, 100); userPrefs.setLoanBookFilePath(Paths.get("loanbook.xml")); return userPrefs; diff --git a/src/test/java/loanbook/testutil/ModelStub.java b/src/test/java/loanbook/testutil/ModelStub.java index 541e39cd4077..2e962870a83e 100644 --- a/src/test/java/loanbook/testutil/ModelStub.java +++ b/src/test/java/loanbook/testutil/ModelStub.java @@ -176,6 +176,11 @@ public void setPass(Password pass) { throw new AssertionError("This method should not be called."); } + @Override + public String getSalt() { + throw new AssertionError("This method should not be called."); + } + @Override public boolean hasEqualEditableFields(Model other) { throw new AssertionError("This method should not be called."); diff --git a/src/test/java/systemtests/FindCommandSystemTest.java b/src/test/java/systemtests/FindCommandSystemTest.java index c5028d5050b4..19e3d34c3206 100644 --- a/src/test/java/systemtests/FindCommandSystemTest.java +++ b/src/test/java/systemtests/FindCommandSystemTest.java @@ -19,6 +19,7 @@ import loanbook.logic.commands.RedoCommand; import loanbook.logic.commands.UndoCommand; import loanbook.model.Model; +import loanbook.model.Password; import loanbook.model.tag.Tag; public class FindCommandSystemTest extends LoanBookSystemTest { @@ -30,6 +31,7 @@ public void find() { */ String command = " " + FindCommand.COMMAND_WORD + " " + KEYWORD_MATCHING_MEIER + " "; Model expectedModel = getModel(); + expectedModel.setPass(new Password("a12345", expectedModel.getSalt())); ModelHelper.setFilteredList(expectedModel, BENSON, DANIEL); // first names of Benson and Daniel are "Meier" assertCommandSuccess(command, expectedModel); assertSelectedCardUnchanged(); From 29149aa86792d63eaa04745a1d4691f4045ce9c3 Mon Sep 17 00:00:00 2001 From: Ang Wei Neng Date: Sun, 11 Nov 2018 16:04:35 +0800 Subject: [PATCH 4/5] Update history command: (#267) * Update history command: * Fix english --- docs/UserGuide.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 7b623f35211a..b0bb89bf5956 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -350,7 +350,8 @@ Format: `history` [NOTE] ==== -Pressing the kbd:[↑] and kbd:[↓] arrows will display the previous and next input respectively in the command box. +* Pressing the kbd:[↑] and kbd:[↓] arrows will display the previous and next input respectively in the command box. +* Commands that require a password will not have its input saved in history. i.e. `delete i/1 x/a12345` will be saved as `delete`. ==== === Check your email: `checkemail` From 30f43a55ffb52261054f5437af0787daddb7798a Mon Sep 17 00:00:00 2001 From: wn96 Date: Sun, 11 Nov 2018 16:46:26 +0800 Subject: [PATCH 5/5] Hot fix image name --- docs/DeveloperGuide.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 92d6cd0506eb..c423f51c4d3f 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -440,11 +440,11 @@ Step 5. Password in `UserPref` is saved to the encrypted value of the new passwo The following sequence diagram shows how the `setpass` operation works: -image::SetPasswordLogic.png[width="800"] +image::setPasswordLogic.png[width="800"] The following activity diagram summarizes what happens when a user executes `setpass`: -image::SetPassActivityDiagram.png[width="650"] +image::setPassActivityDiagram.png[width="650"] Step 6. The user executes a critical command `delete i/1 x/a12345`. @@ -457,11 +457,11 @@ If current password input is wrong, or if the index provided is invalid, deletio The following sequence diagram shows how the new `delete` operation works: -image::DeleteLoanWithPass.png[width="800"] +image::deleteLoanWithPass.png[width="800"] The following activity diagram summarizes what happens when a user executes `delete`: -image::DeleteActivityDiagram.png[width="650"] +image::deleteActivityDiagram.png[width="650"] ==== Design Considerations