diff --git a/src/web/js/lib/account_validator.js b/src/web/js/lib/account_validator.js new file mode 100644 index 0000000..3d892a3 --- /dev/null +++ b/src/web/js/lib/account_validator.js @@ -0,0 +1,54 @@ +class AccountValidator { + + constructor() { + this.patternMaestroID = /^[A-Za-z]{1}[A-Za-z0-9]{3,19}$/; + this.patternMaestroPW = /^[A-Za-z0-9]{4,16}$/; + } + + isValidMaestroID(textID) { + if(!this.patternMaestroID.test(textID)) + return false; + + return true; + } + + messageForInvalidMaestroID(textID) { + if(textID.length < AccountValidator.MAESTRO_ID_LENGTH_MINIMUM) + return "마에스트로 계정명은 " + AccountValidator.MAESTRO_ID_LENGTH_MINIMUM + "글자 이상이어야 합니다."; + else if(textID.length > AccountValidator.MAESTRO_ID_LENGTH_MAXIMUM) + return "마에스트로 계정명은 " + AccountValidator.MAESTRO_ID_LENGTH_MAXIMUM + "글자 이하이어야 합니다."; + else if(!(/^[A-Za-z]/.test(textID))) + return "마에스트로 계정명은 알파벳으로 시작해야 합니다."; + else if((/[^\w]/g).test(textID)) + return "마에스트로 계정명은 알파벳과 숫자로만 적어주세요."; + } + + + isValidMaestroPW(textPW) { + if(!this.patternMaestroPW.test(textPW)) + return false; + + return true; + } + + messageForInvalidMaestroPW(textPW) { + console.log(textPW); + if(textPW.length < AccountValidator.MAESTRO_PW_LENGTH_MINIMUM) + return "마에스트로의 암호는 " + AccountValidator.MAESTRO_PW_LENGTH_MINIMUM + "글자 이상이어야 합니다."; + else if(textPW.length > AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM) + return "마에스트로의 암호는 " + AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM + "글자 이하이어야 합니다."; + else if((/[^\w]/g).test(textPW)) + return "마에스트로의 암호는 알파벳과 숫자로만 적어주세요."; + else + return "???"; + } + + +} + + +AccountValidator.MAESTRO_ID_LENGTH_MINIMUM = 4; +AccountValidator.MAESTRO_ID_LENGTH_MAXIMUM = 20; + +AccountValidator.MAESTRO_PW_LENGTH_MINIMUM = 4; +AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM = 16; \ No newline at end of file diff --git a/src/web/main/register.html b/src/web/main/register.html index 5f32ad6..156804b 100644 --- a/src/web/main/register.html +++ b/src/web/main/register.html @@ -10,6 +10,7 @@ + + + diff --git a/test/tdd.js b/test/tdd.js index a0b8d44..53284cb 100644 --- a/test/tdd.js +++ b/test/tdd.js @@ -1,3 +1,67 @@ +////////////////////////////////////////////////// +// AccountValidator + +let accountValidator = new AccountValidator(); + +QUnit.test( "AccountValidator - isValidMaestroID", function( assert ) { + let text = ""; + assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - no text"); + text = "1abcde"; + assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text); + text = "abc"; + assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text); + text = "a1b"; + assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text); + text = "abcdeabcdeabcdeabcdea"; + assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text); + + text = "abcd"; + assert.equal(accountValidator.isValidMaestroID(text), true, "isValidMaestroID - " + text); + text = "aA1Bccd"; + assert.equal(accountValidator.isValidMaestroID(text), true, "isValidMaestroID - " + text); + text = "abcdeabcdeabcdeabcde"; + assert.equal(accountValidator.isValidMaestroID(text), true, "isValidMaestroID - " + text); +}); + +QUnit.test( "AccountValidator - isValidMaestroPW", function( assert ) { + let text = ""; + text = ""; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "1"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "12"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "123"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "1234"; + assert.equal(accountValidator.isValidMaestroPW(text), true, "isValidMaestroPW - " + text); + text = "12345"; + assert.equal(accountValidator.isValidMaestroPW(text), true, "isValidMaestroPW - " + text); + text = "123456"; + assert.equal(accountValidator.isValidMaestroPW(text), true, "isValidMaestroPW - " + text); + text = "1234567"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - no text"); + text = "1abcde"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "abc"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "a1b"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "abcdeabcdeabcdeabcdea"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + + text = "abcd"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "aA1Bccd"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text); + text = "abcdeabcdeabcdeabcde"; + assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroID - " + text); +}); + + + ////////////////////////////////////////////////// // TypingTextManager @@ -140,15 +204,15 @@ dbConnectManager.setMaestroID(0); dbConnectManager.setPlayerID(0); dbConnectManager.setDateTime("2018-05-16", "14:50:00"); -QUnit.test( "DBConnectManager - User login", function( assert ) { +QUnit.test( "DBConnectManager - Player login", function( assert ) { let returnPlayerID = -1; let done = assert.async(); setTimeout(function() { - dbConnectManager.requestCheckUserLogin( + dbConnectManager.requestCheckPlayerLogin( "jisangs", "test", "111111", (jsonData) => { - returnPlayerID = jsonData["UserID"]; + returnPlayerID = jsonData["PlayerID"]; assert.equal(returnPlayerID, 31); done(); }, @@ -162,7 +226,7 @@ QUnit.test( "DBConnectManager - User login", function( assert ) { QUnit.test( "DBConnectManager - Player history", function( assert ) { sessionStorageManager.maestroID = 1; // jisangs - sessionStorageManager.playerUserID = "8"; // 부현율 + sessionStorageManager.playerID = "8"; // 부현율 sessionStorageManager.playingAppID = 29; let date = "2018-05-16"; @@ -205,13 +269,13 @@ QUnit.test( "DBConnectManager - Player ranking", function( assert ) { (type, rankingRecordManager) => { assert.equal(rankingRecordManager.getRankAt(0), 1, "hour"); assert.equal(rankingRecordManager.getBestRecordAt(0), 302.921, "hour"); - assert.equal(rankingRecordManager.getUserIDAt(0), 5, "hour"); - assert.equal(rankingRecordManager.getUserNameAt(0), "김지유", "hour"); + assert.equal(rankingRecordManager.getPlayerIDAt(0), 5, "hour"); + assert.equal(rankingRecordManager.getPlayerNameAt(0), "김지유", "hour"); assert.equal(rankingRecordManager.getRankAt(5), 6, "hour"); assert.equal(rankingRecordManager.getBestRecordAt(5), 128.436, "hour"); - assert.equal(rankingRecordManager.getUserIDAt(5), 22, "hour"); - assert.equal(rankingRecordManager.getUserNameAt(5), "모윤건", "hour"); + assert.equal(rankingRecordManager.getPlayerIDAt(5), 22, "hour"); + assert.equal(rankingRecordManager.getPlayerNameAt(5), "모윤건", "hour"); done(); } @@ -227,13 +291,13 @@ QUnit.test( "DBConnectManager - Player ranking", function( assert ) { (type, rankingRecordManager) => { assert.equal(rankingRecordManager.getRankAt(0), 1, "day"); assert.equal(rankingRecordManager.getBestRecordAt(0), 313.304, "day"); - assert.equal(rankingRecordManager.getUserIDAt(0), 19, "day"); - assert.equal(rankingRecordManager.getUserNameAt(0), "오지운", "day"); + assert.equal(rankingRecordManager.getPlayerIDAt(0), 19, "day"); + assert.equal(rankingRecordManager.getPlayerNameAt(0), "오지운", "day"); assert.equal(rankingRecordManager.getRankAt(17), 18, "day"); assert.equal(rankingRecordManager.getBestRecordAt(17), 65.337, "day"); - assert.equal(rankingRecordManager.getUserIDAt(17), 20, "day"); - assert.equal(rankingRecordManager.getUserNameAt(17), "김민성", "day"); + assert.equal(rankingRecordManager.getPlayerIDAt(17), 20, "day"); + assert.equal(rankingRecordManager.getPlayerNameAt(17), "김민성", "day"); done(); } @@ -249,13 +313,13 @@ QUnit.test( "DBConnectManager - Player ranking", function( assert ) { (type, rankingRecordManager) => { assert.equal(rankingRecordManager.getRankAt(0), 1, "month"); assert.equal(rankingRecordManager.getBestRecordAt(0), 617.231, "month"); - assert.equal(rankingRecordManager.getUserIDAt(0), 50, "month"); - assert.equal(rankingRecordManager.getUserNameAt(0), "강민준", "month"); + assert.equal(rankingRecordManager.getPlayerIDAt(0), 50, "month"); + assert.equal(rankingRecordManager.getPlayerNameAt(0), "강민준", "month"); assert.equal(rankingRecordManager.getRankAt(17), 18, "month"); assert.equal(rankingRecordManager.getBestRecordAt(17), 216.279, "month"); - assert.equal(rankingRecordManager.getUserIDAt(17), 9, "month"); - assert.equal(rankingRecordManager.getUserNameAt(17), "신예성", "month"); + assert.equal(rankingRecordManager.getPlayerIDAt(17), 9, "month"); + assert.equal(rankingRecordManager.getPlayerNameAt(17), "신예성", "month"); done(); } @@ -307,7 +371,7 @@ QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) { setTimeout(function() { dbConnectManager.requestTodayBestRecord( 1, // maestro ID for "jisangs" - 1, // user ID for jisangs + 1, // Player ID for jisangs 101, // space_invaders app ID (jsonData) => { todayBestRecord = jsonData["BestRecord"]; @@ -322,7 +386,7 @@ QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) { setTimeout(function() { dbConnectManager.updateTodayBestRecord( 1, // maestro ID for "jisangs" - 1, // user ID for jisangs + 1, // Player ID for jisangs 101, // space_invaders app ID todayBestRecord + 1000 // new record ); @@ -331,7 +395,7 @@ QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) { setTimeout(function() { dbConnectManager.requestTodayBestRecord( 1, // maestro ID for "jisangs" - 1, // user ID for jisangs + 1, // Player ID for jisangs 101, // space_invaders app ID (jsonData) => { let bestRecord = jsonData["BestRecord"]; @@ -497,11 +561,11 @@ QUnit.test( "RankingRecordManager - getAt", function( assert ) { assert.equal(rankingRecordManager.getRankAt(0), 4); assert.equal(rankingRecordManager.getRankAt(4), 8); - assert.equal(rankingRecordManager.getUserIDAt(0), 1); - assert.equal(rankingRecordManager.getUserIDAt(4), 5); + assert.equal(rankingRecordManager.getPlayerIDAt(0), 1); + assert.equal(rankingRecordManager.getPlayerIDAt(4), 5); - assert.equal(rankingRecordManager.getUserNameAt(0), "김남희"); - assert.equal(rankingRecordManager.getUserNameAt(4), "신현주"); + assert.equal(rankingRecordManager.getPlayerNameAt(0), "김남희"); + assert.equal(rankingRecordManager.getPlayerNameAt(4), "신현주"); assert.equal(rankingRecordManager.getBestRecordAt(0), 1400); assert.equal(rankingRecordManager.getBestRecordAt(4), 600); @@ -544,15 +608,15 @@ QUnit.test( "SessionStorageManager - PlayerName", function( assert ) { assert.equal(sessionStorageManager.playerName, null, "playerName"); }); -QUnit.test( "SessionStorageManager - playerUserID", function( assert ) { +QUnit.test( "SessionStorageManager - playerPlayerID", function( assert ) { sessionStorageManager.clear(); - assert.equal(sessionStorageManager.playerUserID, null, "playerUserID"); + assert.equal(sessionStorageManager.playerID, null, "playerID"); - sessionStorageManager.playerUserID = 1; - assert.equal(sessionStorageManager.playerUserID, 1, "playerUserID"); + sessionStorageManager.playerID = 1; + assert.equal(sessionStorageManager.playerID, 1, "playerID"); - sessionStorageManager.removeItem("playerUserID"); - assert.equal(sessionStorageManager.playerUserID, null, "playerUserID"); + sessionStorageManager.removeItem("playerID"); + assert.equal(sessionStorageManager.playerID, null, "playerID"); }); QUnit.test( "SessionStorageManager - playingAppName", function( assert ) {