• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account Log out
  • Favorite
  • Project
  • Recent History
Loading...
  • Log in
  • Sign up
kadrians / Testing_for_YONA star
  • Project homeH
  • CodeC
  • IssueI 1
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB 2
  • Files
  • Commit
  • Branches
Testing_for_YONAsourcetestmodelsPasswordResetTest.java
Download as .zip file
File name
Commit message
Commit date
bin
Yona 1.16.0 Upload
02-04
lib
Yona 1.16.0 Upload
02-04
share/doc/api
Yona 1.16.0 Upload
02-04
source
Source Code Upload
02-04
README.md
Yona 1.16.0 Upload
02-04
File name
Commit message
Commit date
app
Source Code Upload
02-04
conf
Source Code Upload
02-04
docs
Source Code Upload
02-04
lib
Source Code Upload
02-04
project
Source Code Upload
02-04
public
Source Code Upload
02-04
support-script
Source Code Upload
02-04
test
Source Code Upload
02-04
.gitignore
Source Code Upload
02-04
.mailmap
Source Code Upload
02-04
.travis.yml
Source Code Upload
02-04
AUTHORS
Source Code Upload
02-04
LICENSE
Source Code Upload
02-04
NOTICE
Source Code Upload
02-04
README.md
Source Code Upload
02-04
build.sbt
Source Code Upload
02-04
dev.sh
Source Code Upload
02-04
dist.sh
Source Code Upload
02-04
is-alive-bot.sh
Source Code Upload
02-04
minify-js.sh
Source Code Upload
02-04
restart.sh
Source Code Upload
02-04
File name
Commit message
Commit date
actions/support
Source Code Upload
02-04
actors
Source Code Upload
02-04
controllers
Source Code Upload
02-04
mailbox
Source Code Upload
02-04
models
Source Code Upload
02-04
playRepository
Source Code Upload
02-04
support
Source Code Upload
02-04
utils
Source Code Upload
02-04
validation
Source Code Upload
02-04
File name
Commit message
Commit date
support
Source Code Upload
02-04
AttachmentTest.java
Source Code Upload
02-04
CodeCommentThreadTest.java
Source Code Upload
02-04
CommentTest.java
Source Code Upload
02-04
CommentThreadTest.java
Source Code Upload
02-04
CommitCommentTest.java
Source Code Upload
02-04
FileDiffTest.java
Source Code Upload
02-04
IssueTest.java
Source Code Upload
02-04
MilestoneTest.java
Source Code Upload
02-04
ModelTest.java
Source Code Upload
02-04
NotificationEventTest.java
Source Code Upload
02-04
NotificationMailTest.java
Source Code Upload
02-04
OrganizationTest.java
Source Code Upload
02-04
OrganizationUserTest.java
Source Code Upload
02-04
PasswordResetTest.java
Source Code Upload
02-04
PostingTest.java
Source Code Upload
02-04
ProjectTest.java
Source Code Upload
02-04
ProjectUserTest.java
Source Code Upload
02-04
PullRequestEventTest.java
Source Code Upload
02-04
PullRequestTest.java
Source Code Upload
02-04
RecentlyVisitedProjectsTest.java
Source Code Upload
02-04
ReviewCommentTest.java
Source Code Upload
02-04
RoleTest.java
Source Code Upload
02-04
SearchResultTests.java
Source Code Upload
02-04
SearchTests.java
Source Code Upload
02-04
TimelineItemTest.java
Source Code Upload
02-04
UserTest.java
Source Code Upload
02-04
WatchTest.java
Source Code Upload
02-04
Nell 02-04 2600fe6 Source Code Upload UNIX
Raw Open in browser Change history
/** * Yobi, Project Hosting SW * * Copyright 2013 NAVER Corp. * http://yobi.io * * @Author Suwon Chae * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package models; import static org.fest.assertions.Assertions.assertThat; import static org.fest.assertions.Fail.fail; import controllers.UserApp; import org.joda.time.DateTime; import org.junit.*; import utils.PasswordReset; import java.util.Map; public class PasswordResetTest extends ModelTest<PasswordReset> { @Before public void setUp() throws Exception { PasswordReset.resetHashMap.clear(); } @Test public void testGenerateResetHash() throws Exception { //Given String userId = "doortts"; //When String hashString = PasswordReset.generateResetHash(userId); //Then assertThat(hashString).describedAs("SHA1 character size").hasSize(40); } @Test public void testAddHashToResetTable() throws Exception { //Given String userId = "doortts"; String hashString = PasswordReset.generateResetHash(userId); //When PasswordReset.addHashToResetTable(userId, hashString); //Then assertThat(getHashString(userId)).isEqualTo(hashString); } @Test public void testInvalidateResetHash() throws Exception { //Given String userId = "doortts"; String hashString = PasswordReset.generateResetHash(userId); PasswordReset.addHashToResetTable(userId, hashString); //When boolean result = invalidateResetHash(userId); //Then assertThat(result).isTrue(); assertThat(getHashString(userId)).isNull(); } @Test public void testIsHashExists() { //Given String userId = "doortts"; String hashString = PasswordReset.generateResetHash(userId); PasswordReset.addHashToResetTable(userId, hashString); //When boolean result = hashStringExist(userId); //Then assertThat(result).isTrue(); } @Test public void testIsHashExists_not() { //Given String userId = "doortts"; //When boolean result = hashStringExist(userId); //Then assertThat(result).isFalse(); } @Test public void testIsValidResetHash_notExists() { //Given String userId = "doortts"; // When // Then assertThat(PasswordReset.isValidResetHash("sfalkjsd")).isFalse(); } @Test public void testIsValidResetHash_expiredHash() { //Given String userId = "doortts"; String hashString = PasswordReset.generateResetHash(userId); PasswordReset.addHashToResetTable(userId, hashString); Map<String, Long> timetable = getResetHashTimetable(); DateTime current = new DateTime(); //When //forced assume that time has passed timetable.remove(hashString); timetable.put(hashString, current.minusSeconds(PasswordReset.HASH_EXPIRE_TIME_MILLISEC +1000).getMillis()); //Then assertThat(PasswordReset.isValidResetHash(hashString)).isFalse(); } @Test public void testIsValidResetHash_evertythingOK() { //Given String userId = "doortts"; String hashString = PasswordReset.generateResetHash(userId); PasswordReset.addHashToResetTable(userId, hashString); //When boolean result = PasswordReset.isValidResetHash(hashString); //Then assertThat(result).isTrue(); } @Test public void testResetPassword() { //Given String userId = "doortts"; String newPassword = "whffudy"; String hashString = PasswordReset.generateResetHash(userId); PasswordReset.addHashToResetTable(userId, hashString); //When boolean result = PasswordReset.resetPassword(hashString, newPassword); //Then assertThat(result).isTrue(); assertThat(UserApp.authenticateWithPlainPassword(userId, newPassword)).isEqualTo(User.findByLoginId(userId)); } @Test public void testResetPassword_wrongHash() { //Given String userId = "doortts"; String newPassword = "gomdol"; String hashString = PasswordReset.generateResetHash(userId); PasswordReset.addHashToResetTable(userId, hashString); //When String wrongHash = "sfdlkjafslfjsda"; boolean result = PasswordReset.resetPassword(wrongHash, newPassword); //Then assertThat(result).isFalse(); assertThat(UserApp.authenticateWithPlainPassword(userId, newPassword)).isEqualTo(User.anonymous); } private static boolean hashStringExist(String loginId) { return getHashString(loginId) != null; } private static String getHashString(String loginId) { return PasswordReset.resetHashMap.get(loginId); } /** * 특정 loginId의 hashString을 제거한다. * * testability를 위해 만들어졌을 뿐 특별히 사용되는 곳은 없다. * * @param loginId * @return 정상 제거 여부 */ public static boolean invalidateResetHash(String loginId) { String targetIdToReset = PasswordReset.resetHashMap.get(loginId); if (targetIdToReset == null){ return false; } PasswordReset.resetHashMap.remove(loginId); return true; } /** * {@code HashMap<hashString, millisecond>}을 돌려준다. * * 현재는 test코드 이외에서는 특별히 사용할 곳이 없다. * * @return */ private static Map<String, Long> getResetHashTimetable(){ return PasswordReset.resetHashTimetable; } }

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
login with Google Sign in with Google
Reset password | Sign up