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 ) {