Add: total tdd

This commit is contained in:
2018-06-18 10:45:17 +09:00
parent b235781141
commit e310b66b82
10 changed files with 779 additions and 160 deletions
+3
View File
@@ -5,6 +5,9 @@ class NumberUtil {
} }
static numberOfDigits(number) { static numberOfDigits(number) {
if(number === 1000)
return 4;
return Math.floor(Math.log(number) / Math.LN10 + 1); // bug : 1000 -> expected 4 but 3 return Math.floor(Math.log(number) / Math.LN10 + 1); // bug : 1000 -> expected 4 but 3
} }
+4 -1
View File
@@ -52,7 +52,10 @@ class TypingPractice {
this.keyMapper = new KeyMapper(); this.keyMapper = new KeyMapper();
new Keyboard(this.keyMapper); if(sessionStorageManager.playingAppName.indexOf("korean") > 0)
new Keyboard(this.keyMapper, Keyboard.KOREAN);
else
new Keyboard(this.keyMapper, Keyboard.ENGLISH);
game.input.keyboard.processKeyPress = () => { game.input.keyboard.processKeyPress = () => {
self.checkTypingContents(event); self.checkTypingContents(event);
+175 -97
View File
@@ -1,3 +1,12 @@
class KeyData {
constructor() {
this.functionKey = null;
this.englishKey = null;
this.koreanKey = null;
}
}
class KeyTextData { class KeyTextData {
constructor(normalText, shiftText) { constructor(normalText, shiftText) {
@@ -7,6 +16,8 @@ class KeyTextData {
} }
class KeyMapper { class KeyMapper {
constructor() { constructor() {
@@ -20,112 +31,143 @@ class KeyMapper {
registerFunctionKey() { registerFunctionKey() {
this.registerKeyTextData("Backquote", "`", "~"); this.registerFunctionKeyTextData("Backquote", "`", "~");
this.registerKeyTextData("Digit1", "1", "!"); this.registerFunctionKeyTextData("Digit1", "1", "!");
this.registerKeyTextData("Digit2", "2", "@"); this.registerFunctionKeyTextData("Digit2", "2", "@");
this.registerKeyTextData("Digit3", "3", "#"); this.registerFunctionKeyTextData("Digit3", "3", "#");
this.registerKeyTextData("Digit4", "4", "$"); this.registerFunctionKeyTextData("Digit4", "4", "$");
this.registerKeyTextData("Digit5", "5", "%"); this.registerFunctionKeyTextData("Digit5", "5", "%");
this.registerKeyTextData("Digit6", "6", "^"); this.registerFunctionKeyTextData("Digit6", "6", "^");
this.registerKeyTextData("Digit7", "7", "&"); this.registerFunctionKeyTextData("Digit7", "7", "&");
this.registerKeyTextData("Digit8", "8", "*"); this.registerFunctionKeyTextData("Digit8", "8", "*");
this.registerKeyTextData("Digit9", "9", "("); this.registerFunctionKeyTextData("Digit9", "9", "(");
this.registerKeyTextData("Digit0", "0", ")"); this.registerFunctionKeyTextData("Digit0", "0", ")");
this.registerKeyTextData("Minus", "-", "_"); this.registerFunctionKeyTextData("Minus", "-", "_");
this.registerKeyTextData("Equal", "=", "+"); this.registerFunctionKeyTextData("Equal", "=", "+");
this.registerKeyTextData("Backspace", "backspace", "backspace"); this.registerFunctionKeyTextData("Backspace", "backspace", "backspace");
this.registerKeyTextData("Tab", "tab", "tab"); this.registerFunctionKeyTextData("Tab", "tab", "tab");
this.registerKeyTextData("BracketLeft", "[", "{"); this.registerFunctionKeyTextData("BracketLeft", "[", "{");
this.registerKeyTextData("BracketRight", "]", "}"); this.registerFunctionKeyTextData("BracketRight", "]", "}");
this.registerKeyTextData("Backslash", "\\", "|"); this.registerFunctionKeyTextData("Backslash", "\\", "|");
this.registerKeyTextData("CapsLock", "caps lock", "caps lock"); this.registerFunctionKeyTextData("CapsLock", "caps lock", "caps lock");
this.registerKeyTextData("Semicolon", ";", ":"); this.registerFunctionKeyTextData("Semicolon", ";", ":");
this.registerKeyTextData("Quote", "'", "\""); this.registerFunctionKeyTextData("Quote", "'", "\"");
this.registerKeyTextData("Enter", "enter", "enter"); this.registerFunctionKeyTextData("Enter", "enter", "enter");
this.registerKeyTextData("ShiftLeft", "left_shift", "left_shift"); this.registerFunctionKeyTextData("ShiftLeft", "left_shift", "left_shift");
this.registerKeyTextData("ShiftRight", "right_shift", "right_shift"); this.registerFunctionKeyTextData("ShiftRight", "right_shift", "right_shift");
this.registerKeyTextData("Comma", ",", "<"); this.registerFunctionKeyTextData("Comma", ",", "<");
this.registerKeyTextData("Period", ".", ">"); this.registerFunctionKeyTextData("Period", ".", ">");
this.registerKeyTextData("Slash", "/", "?"); this.registerFunctionKeyTextData("Slash", "/", "?");
this.registerKeyTextData("ControlLeft", "ctrl", "ctrl"); this.registerFunctionKeyTextData("ControlLeft", "ctrl", "ctrl");
this.registerKeyTextData("window", "window", "window"); this.registerFunctionKeyTextData("window", "window", "window");
this.registerKeyTextData("AltLeft", "alt", "alt"); this.registerFunctionKeyTextData("AltLeft", "alt", "alt");
this.registerKeyTextData("chinese", "한자", "한자"); this.registerFunctionKeyTextData("Chinese", "한자", "한자");
this.registerKeyTextData("Space", "space", "space"); this.registerFunctionKeyTextData("Space", "space", "space");
this.registerKeyTextData("korean_english", "한/영", "한/영"); this.registerFunctionKeyTextData("KoreanEnglish", "한/영", "한/영");
this.registerKeyTextData("AltRight", "alt", "alt"); this.registerFunctionKeyTextData("AltRight", "alt", "alt");
this.registerKeyTextData("ControlRight", "ctrl", "ctrl"); this.registerFunctionKeyTextData("ControlRight", "ctrl", "ctrl");
} }
registerEnglishKey() { registerEnglishKey() {
this.registerKeyTextData("KeyQ", "q", "Q"); this.registerEnglishKeyTextData("KeyQ", "q", "Q");
this.registerKeyTextData("KeyW", "w", "W"); this.registerEnglishKeyTextData("KeyW", "w", "W");
this.registerKeyTextData("KeyE", "e", "E"); this.registerEnglishKeyTextData("KeyE", "e", "E");
this.registerKeyTextData("KeyR", "r", "R"); this.registerEnglishKeyTextData("KeyR", "r", "R");
this.registerKeyTextData("KeyT", "t", "T"); this.registerEnglishKeyTextData("KeyT", "t", "T");
this.registerKeyTextData("KeyY", "y", "Y"); this.registerEnglishKeyTextData("KeyY", "y", "Y");
this.registerKeyTextData("KeyU", "u", "U"); this.registerEnglishKeyTextData("KeyU", "u", "U");
this.registerKeyTextData("KeyI", "i", "I"); this.registerEnglishKeyTextData("KeyI", "i", "I");
this.registerKeyTextData("KeyO", "o", "O"); this.registerEnglishKeyTextData("KeyO", "o", "O");
this.registerKeyTextData("KeyP", "p", "P"); this.registerEnglishKeyTextData("KeyP", "p", "P");
this.registerKeyTextData("KeyA", "a", "A"); this.registerEnglishKeyTextData("KeyA", "a", "A");
this.registerKeyTextData("KeyS", "s", "S"); this.registerEnglishKeyTextData("KeyS", "s", "S");
this.registerKeyTextData("KeyD", "d", "D"); this.registerEnglishKeyTextData("KeyD", "d", "D");
this.registerKeyTextData("KeyF", "f", "F"); this.registerEnglishKeyTextData("KeyF", "f", "F");
this.registerKeyTextData("KeyG", "g", "G"); this.registerEnglishKeyTextData("KeyG", "g", "G");
this.registerKeyTextData("KeyH", "h", "H"); this.registerEnglishKeyTextData("KeyH", "h", "H");
this.registerKeyTextData("KeyJ", "j", "J"); this.registerEnglishKeyTextData("KeyJ", "j", "J");
this.registerKeyTextData("KeyK", "k", "K"); this.registerEnglishKeyTextData("KeyK", "k", "K");
this.registerKeyTextData("KeyL", "l", "L"); this.registerEnglishKeyTextData("KeyL", "l", "L");
this.registerKeyTextData("KeyZ", "z", "Z"); this.registerEnglishKeyTextData("KeyZ", "z", "Z");
this.registerKeyTextData("KeyX", "x", "X"); this.registerEnglishKeyTextData("KeyX", "x", "X");
this.registerKeyTextData("KeyC", "c", "C"); this.registerEnglishKeyTextData("KeyC", "c", "C");
this.registerKeyTextData("KeyV", "v", "V"); this.registerEnglishKeyTextData("KeyV", "v", "V");
this.registerKeyTextData("KeyB", "b", "B"); this.registerEnglishKeyTextData("KeyB", "b", "B");
this.registerKeyTextData("KeyN", "n", "N"); this.registerEnglishKeyTextData("KeyN", "n", "N");
this.registerKeyTextData("KeyM", "m", "M"); this.registerEnglishKeyTextData("KeyM", "m", "M");
} }
registerKoreanKey() { registerKoreanKey() {
this.registerKeyTextData("KeyQ", "ㅂ", "ㅃ"); this.registerKoreanKeyTextData("KeyQ", "ㅂ", "ㅃ");
this.registerKeyTextData("KeyW", "ㅈ", "ㅉ"); this.registerKoreanKeyTextData("KeyW", "ㅈ", "ㅉ");
this.registerKeyTextData("KeyE", "ㄷ", "ㄸ"); this.registerKoreanKeyTextData("KeyE", "ㄷ", "ㄸ");
this.registerKeyTextData("KeyR", "ㄱ", "ㄲ"); this.registerKoreanKeyTextData("KeyR", "ㄱ", "ㄲ");
this.registerKeyTextData("KeyT", "ㅅ", "ㅆ"); this.registerKoreanKeyTextData("KeyT", "ㅅ", "ㅆ");
this.registerKeyTextData("KeyY", "ㅛ", "ㅛ"); this.registerKoreanKeyTextData("KeyY", "ㅛ", "ㅛ");
this.registerKeyTextData("KeyU", "ㅕ", "ㅕ"); this.registerKoreanKeyTextData("KeyU", "ㅕ", "ㅕ");
this.registerKeyTextData("KeyI", "ㅑ", "ㅑ"); this.registerKoreanKeyTextData("KeyI", "ㅑ", "ㅑ");
this.registerKeyTextData("KeyO", "ㅐ", "ㅒ"); this.registerKoreanKeyTextData("KeyO", "ㅐ", "ㅒ");
this.registerKeyTextData("KeyP", "ㅔ", "ㅖ"); this.registerKoreanKeyTextData("KeyP", "ㅔ", "ㅖ");
this.registerKeyTextData("KeyA", "ㅁ", "ㅁ"); this.registerKoreanKeyTextData("KeyA", "ㅁ", "ㅁ");
this.registerKeyTextData("KeyS", "ㄴ", "ㄴ"); this.registerKoreanKeyTextData("KeyS", "ㄴ", "ㄴ");
this.registerKeyTextData("KeyD", "ㅇ", "ㅇ"); this.registerKoreanKeyTextData("KeyD", "ㅇ", "ㅇ");
this.registerKeyTextData("KeyF", "ㄹ", "ㄹ"); this.registerKoreanKeyTextData("KeyF", "ㄹ", "ㄹ");
this.registerKeyTextData("KeyG", "ㅎ", "ㅎ"); this.registerKoreanKeyTextData("KeyG", "ㅎ", "ㅎ");
this.registerKeyTextData("KeyH", "ㅗ", "ㅗ"); this.registerKoreanKeyTextData("KeyH", "ㅗ", "ㅗ");
this.registerKeyTextData("KeyJ", "ㅓ", "ㅓ"); this.registerKoreanKeyTextData("KeyJ", "ㅓ", "ㅓ");
this.registerKeyTextData("KeyK", "ㅏ", "ㅏ"); this.registerKoreanKeyTextData("KeyK", "ㅏ", "ㅏ");
this.registerKeyTextData("KeyL", "ㅣ", "ㅣ"); this.registerKoreanKeyTextData("KeyL", "ㅣ", "ㅣ");
this.registerKeyTextData("KeyZ", "ㅋ", "ㅋ"); this.registerKoreanKeyTextData("KeyZ", "ㅋ", "ㅋ");
this.registerKeyTextData("KeyX", "ㅌ", "ㅌ"); this.registerKoreanKeyTextData("KeyX", "ㅌ", "ㅌ");
this.registerKeyTextData("KeyC", "ㅊ", "ㅊ"); this.registerKoreanKeyTextData("KeyC", "ㅊ", "ㅊ");
this.registerKeyTextData("KeyV", "ㅍ", "ㅍ"); this.registerKoreanKeyTextData("KeyV", "ㅍ", "ㅍ");
this.registerKeyTextData("KeyB", "ㅠ", "ㅠ"); this.registerKoreanKeyTextData("KeyB", "ㅠ", "ㅠ");
this.registerKeyTextData("KeyN", "ㅜ", "ㅜ"); this.registerKoreanKeyTextData("KeyN", "ㅜ", "ㅜ");
this.registerKeyTextData("KeyM", "ㅡ", "ㅡ"); this.registerKoreanKeyTextData("KeyM", "ㅡ", "ㅡ");
} }
registerKeyTextData(keyID, normalText, shiftText) { registerFunctionKeyTextData(keyID, normalText, shiftText) {
this.keyboardKeyMap[keyID] = new KeyTextData(normalText, shiftText); if(this.keyboardKeyMap[keyID] === undefined) {
this.keyboardKeyMap[keyID] = new KeyData();
}
this.keyboardKeyMap[keyID].functionKey = new KeyTextData(normalText, shiftText);
if(this.inputKeyMap[keyID] === undefined)
this.inputKeyMap[keyID] = keyID;
if(this.inputKeyMap[normalText] === undefined)
this.inputKeyMap[normalText] = keyID;
if(this.inputKeyMap[shiftText] === undefined)
this.inputKeyMap[shiftText] = keyID;
}
registerEnglishKeyTextData(keyID, normalText, shiftText) {
if(this.keyboardKeyMap[keyID] === undefined) {
this.keyboardKeyMap[keyID] = new KeyData();
}
this.keyboardKeyMap[keyID].englishKey = new KeyTextData(normalText, shiftText);
if(this.inputKeyMap[keyID] === undefined)
this.inputKeyMap[keyID] = keyID;
if(this.inputKeyMap[normalText] === undefined)
this.inputKeyMap[normalText] = keyID;
if(this.inputKeyMap[shiftText] === undefined)
this.inputKeyMap[shiftText] = keyID;
}
registerKoreanKeyTextData(keyID, normalText, shiftText) {
if(this.keyboardKeyMap[keyID] === undefined) {
this.keyboardKeyMap[keyID] = new KeyData();
}
this.keyboardKeyMap[keyID].koreanKey = new KeyTextData(normalText, shiftText);
if(this.inputKeyMap[keyID] === undefined) if(this.inputKeyMap[keyID] === undefined)
this.inputKeyMap[keyID] = keyID; this.inputKeyMap[keyID] = keyID;
@@ -136,20 +178,52 @@ class KeyMapper {
} }
getNormalText(keyID) { getNormalText(keyID, language) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
console.log(keyID); console.log(keyID);
return "?"; return "?";
} }
return this.keyboardKeyMap[keyID].normalText;
// console.log(keyID);
// console.log(language);
// console.log(this.keyboardKeyMap[keyID]);
let keyData = this.keyboardKeyMap[keyID];
if(language === Keyboard.ENGLISH && keyData.englishKey !== null) {
return keyData.englishKey.normalText;
}
else if(language === Keyboard.KOREAN && keyData.koreanKey !== null) {
return keyData.koreanKey.normalText;
}
else if(keyData.functionKey !== undefined) {
return keyData.functionKey.normalText;
}
else {
return "?";
}
} }
getShiftText(keyID) { getShiftText(keyID, language) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
console.log(keyID); console.log(keyID);
return "?"; return "?";
} }
return this.keyboardKeyMap[keyID].shiftText;
// console.log(keyID);
// console.log(language);
// console.log(this.keyboardKeyMap[keyID]);
let keyData = this.keyboardKeyMap[keyID];
if(language === Keyboard.ENGLISH && keyData.englishKey !== null) {
return keyData.englishKey.shiftText;
}
else if(language === Keyboard.KOREAN && keyData.koreanKey !== null) {
return keyData.koreanKey.shiftText;
}
else if(keyData.functionKey !== undefined) {
return keyData.functionKey.shiftText;
}
else {
return "?";
}
} }
@@ -160,12 +234,16 @@ class KeyMapper {
isShiftText(text) { isShiftText(text) {
let keyID = this.getKeyIDOfText(text); let keyID = this.getKeyIDOfText(text);
let keyTextData = this.keyboardKeyMap[keyID]; let keyData = this.keyboardKeyMap[keyID];
if(keyTextData.normalText === text) if(keyData.englishKey !== null && keyData.englishKey.shiftText === text)
return false; return true;
else if(keyData.koreanKey !== null && keyData.koreanKey.shiftText === text)
return true;
else if(keyData.functionKey !== null && keyData.functionKey.shiftText === text)
return true;
return true; return false;
} }
} }
+13 -9
View File
@@ -1,7 +1,8 @@
class Keyboard { class Keyboard {
constructor(keyMapper) { constructor(keyMapper, language) {
this.keyMapper = keyMapper; this.keyMapper = keyMapper;
this.language = language;
this.keyIndex = 0; this.keyIndex = 0;
this.keyDataList = []; this.keyDataList = [];
@@ -129,8 +130,8 @@ class Keyboard {
addFunctionKeyData(keyID, handSide, fingerType, x, y, width, height, type) { addFunctionKeyData(keyID, handSide, fingerType, x, y, width, height, type) {
let normalText = this.keyMapper.getNormalText(keyID); let normalText = this.keyMapper.getNormalText(keyID, this.language);
let shiftText = this.keyMapper.getShiftText(keyID); let shiftText = this.keyMapper.getShiftText(keyID, this.language);
let newKey = this.makeKeyDataObject( let newKey = this.makeKeyDataObject(
keyID, keyID,
@@ -146,8 +147,8 @@ class Keyboard {
addNextFunctionKeyData(keyID, handSide, fingerType, width, height, type) { addNextFunctionKeyData(keyID, handSide, fingerType, width, height, type) {
let prevKey = this.keyDataList[this.keyIndex - 1]; let prevKey = this.keyDataList[this.keyIndex - 1];
let normalText = this.keyMapper.getNormalText(keyID); let normalText = this.keyMapper.getNormalText(keyID, this.language);
let shiftText = this.keyMapper.getShiftText(keyID); let shiftText = this.keyMapper.getShiftText(keyID, this.language);
let newKey = this.makeKeyDataObject( let newKey = this.makeKeyDataObject(
keyID, keyID,
@@ -165,8 +166,8 @@ class Keyboard {
addNextNormalKeyData(keyID, handSide, fingerType) { addNextNormalKeyData(keyID, handSide, fingerType) {
let prevKey = this.keyDataList[this.keyIndex - 1]; let prevKey = this.keyDataList[this.keyIndex - 1];
let normalText = this.keyMapper.getNormalText(keyID); let normalText = this.keyMapper.getNormalText(keyID, this.language);
let shiftText = this.keyMapper.getShiftText(keyID); let shiftText = this.keyMapper.getShiftText(keyID, this.language);
let newKey = this.makeNextNormalKeyDataObject( let newKey = this.makeNextNormalKeyDataObject(
keyID, keyID,
@@ -329,7 +330,7 @@ class Keyboard {
KeyButton.LEFT_FUNCTION_KEY KeyButton.LEFT_FUNCTION_KEY
); );
this.addNextFunctionKeyData( this.addNextFunctionKeyData(
"chinese", "Chinese",
KeyButton.LEFT_HAND, KeyButton.LEFT_HAND,
KeyButton.NONE_FINGER, KeyButton.NONE_FINGER,
Keyboard.CHINESE_KEY_WIDTH_PX, Keyboard.CHINESE_KEY_WIDTH_PX,
@@ -345,7 +346,7 @@ class Keyboard {
KeyButton.CENTER_FUNCTION_KEY KeyButton.CENTER_FUNCTION_KEY
); );
this.addNextFunctionKeyData( this.addNextFunctionKeyData(
"korean_english", "KoreanEnglish",
KeyButton.RIGHT_HAND, KeyButton.RIGHT_HAND,
KeyButton.NONE_FINGER, KeyButton.NONE_FINGER,
Keyboard.KOREAN_ENGLISH_KEY_WIDTH_PX, Keyboard.KOREAN_ENGLISH_KEY_WIDTH_PX,
@@ -373,6 +374,9 @@ class Keyboard {
} }
Keyboard.ENGLISH = "english";
Keyboard.KOREAN = "korean";
Keyboard.DEFAULT_KEY_SIZE_PX = 46; Keyboard.DEFAULT_KEY_SIZE_PX = 46;
Keyboard.BACKSPACE_KEY_WIDTH_PX = Keyboard.DEFAULT_KEY_SIZE_PX * 1.5; Keyboard.BACKSPACE_KEY_WIDTH_PX = Keyboard.DEFAULT_KEY_SIZE_PX * 1.5;
Keyboard.TAB_KEY_WIDTH_PX = Keyboard.DEFAULT_KEY_SIZE_PX * 1.5; Keyboard.TAB_KEY_WIDTH_PX = Keyboard.DEFAULT_KEY_SIZE_PX * 1.5;
-2
View File
@@ -52,8 +52,6 @@
<script src="../../game/typing/practice/define_variables.js"></script> <script src="../../game/typing/practice/define_variables.js"></script>
<script src="../../game/typing/practice/content_progress.js"></script> <script src="../../game/typing/practice/content_progress.js"></script>
<script src="../../game/typing/practice/key_mapper.js"></script> <script src="../../game/typing/practice/key_mapper.js"></script>
<script src="../../game/typing/practice/english_key_mapper.js"></script>
<script src="../../game/typing/practice/korean_key_mapper.js"></script>
<script src="../../game/typing/practice/key_button.js"></script> <script src="../../game/typing/practice/key_button.js"></script>
<script src="../../game/typing/practice/keyboard.js"></script> <script src="../../game/typing/practice/keyboard.js"></script>
<script src="../../game/typing/practice/loading.js"></script> <script src="../../game/typing/practice/loading.js"></script>
+1 -1
View File
@@ -19,6 +19,6 @@
<script src="../src/game/lib/history_record_manager.js"></script> <script src="../src/game/lib/history_record_manager.js"></script>
<script src="../src/game/lib/ranking_record_manager.js"></script> <script src="../src/game/lib/ranking_record_manager.js"></script>
<script src="../src/game/lib/db_connect_manager.js"></script> <script src="../src/game/lib/db_connect_manager.js"></script>
<script src="test_db_connect_manager.js"></script> <script src="db_connect_manager.js"></script>
</body> </body>
</html> </html>
+39 -40
View File
@@ -1,71 +1,70 @@
let englishKeyMapper = new EnglishKeyMapper(); let keyMapper = new KeyMapper();
let koreanKeyMapper = new KoreanKeyMapper();
QUnit.test( "getNormalText", function( assert ) { QUnit.test( "getNormalText", function( assert ) {
assert.equal(englishKeyMapper.getNormalText("Backquote"), "`", "getNormalText - `"); assert.equal(keyMapper.getNormalText("Backquote"), "`", "getNormalText - `");
assert.equal(englishKeyMapper.getNormalText("Slash"), "/", "getNormalText - /"); assert.equal(keyMapper.getNormalText("Slash"), "/", "getNormalText - /");
assert.equal(englishKeyMapper.getNormalText("KeyQ"), "q", "getNormalText - q"); assert.equal(keyMapper.getNormalText("KeyQ"), "q", "getNormalText - q");
assert.equal(englishKeyMapper.getNormalText("KeyM"), "m", "getNormalText - m"); assert.equal(keyMapper.getNormalText("KeyM"), "m", "getNormalText - m");
assert.equal(koreanKeyMapper.getNormalText("KeyQ"), "ㅂ", "getNormalText - ㅂ"); assert.equal(keyMapper.getNormalText("KeyQ"), "ㅂ", "getNormalText - ㅂ");
assert.equal(koreanKeyMapper.getNormalText("KeyM"), "ㅡ", "getNormalText - ㅡ"); assert.equal(keyMapper.getNormalText("KeyM"), "ㅡ", "getNormalText - ㅡ");
}); });
QUnit.test( "getShiftText", function( assert ) { QUnit.test( "getShiftText", function( assert ) {
assert.equal(englishKeyMapper.getShiftText("Backquote"), "~", "getShiftText - ~"); assert.equal(keyMapper.getShiftText("Backquote"), "~", "getShiftText - ~");
assert.equal(englishKeyMapper.getShiftText("Slash"), "?", "getShiftText - ?"); assert.equal(keyMapper.getShiftText("Slash"), "?", "getShiftText - ?");
assert.equal(englishKeyMapper.getShiftText("KeyQ"), "Q", "getShiftText - Q"); assert.equal(keyMapper.getShiftText("KeyQ"), "Q", "getShiftText - Q");
assert.equal(englishKeyMapper.getShiftText("KeyM"), "M", "getShiftText - M"); assert.equal(keyMapper.getShiftText("KeyM"), "M", "getShiftText - M");
assert.equal(koreanKeyMapper.getShiftText("KeyQ"), "ㅃ", "getShiftText - ㅃ"); assert.equal(keyMapper.getShiftText("KeyQ"), "ㅃ", "getShiftText - ㅃ");
assert.equal(koreanKeyMapper.getShiftText("KeyM"), "ㅡ", "getShiftText - ㅡ"); assert.equal(keyMapper.getShiftText("KeyM"), "ㅡ", "getShiftText - ㅡ");
}); });
QUnit.test( "getShiftHandSide", function( assert ) { QUnit.test( "getShiftHandSide", function( assert ) {
assert.equal(englishKeyMapper.getShiftHandSide("Backquote"), KeyTextData.RIGHT_HAND, "getShiftHandSide - `"); assert.equal(keyMapper.getShiftHandSide("Backquote"), KeyTextData.RIGHT_HAND, "getShiftHandSide - `");
assert.equal(englishKeyMapper.getShiftHandSide("Slash"), KeyTextData.LEFT_HAND, "getShiftHandSide - /"); assert.equal(keyMapper.getShiftHandSide("Slash"), KeyTextData.LEFT_HAND, "getShiftHandSide - /");
assert.equal(englishKeyMapper.getShiftHandSide("Space"), KeyTextData.BOTH_HAND, "getShiftHandSide - space"); assert.equal(keyMapper.getShiftHandSide("Space"), KeyTextData.BOTH_HAND, "getShiftHandSide - space");
assert.equal(englishKeyMapper.getShiftHandSide("KeyQ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q"); assert.equal(keyMapper.getShiftHandSide("KeyQ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q");
assert.equal(englishKeyMapper.getShiftHandSide("KeyM"), KeyTextData.LEFT_HAND, "getShiftHandSide - m"); assert.equal(keyMapper.getShiftHandSide("KeyM"), KeyTextData.LEFT_HAND, "getShiftHandSide - m");
assert.equal(koreanKeyMapper.getShiftHandSide("KeyQ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q"); assert.equal(keyMapper.getShiftHandSide("KeyQ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q");
assert.equal(koreanKeyMapper.getShiftHandSide("KeyM"), KeyTextData.LEFT_HAND, "getShiftHandSide - m"); assert.equal(keyMapper.getShiftHandSide("KeyM"), KeyTextData.LEFT_HAND, "getShiftHandSide - m");
}); });
QUnit.test( "getKeyIDOfText", function( assert ) { QUnit.test( "getKeyIDOfText", function( assert ) {
assert.equal(englishKeyMapper.getKeyIDOfText("`"), "Backquote", "getKeyIDOfText - `"); assert.equal(keyMapper.getKeyIDOfText("`"), "Backquote", "getKeyIDOfText - `");
assert.equal(englishKeyMapper.getKeyIDOfText("~"), "Backquote", "getKeyIDOfText - ~"); assert.equal(keyMapper.getKeyIDOfText("~"), "Backquote", "getKeyIDOfText - ~");
assert.equal(englishKeyMapper.getKeyIDOfText("/"), "Slash", "getKeyIDOfText - /"); assert.equal(keyMapper.getKeyIDOfText("/"), "Slash", "getKeyIDOfText - /");
assert.equal(englishKeyMapper.getKeyIDOfText("?"), "Slash", "getKeyIDOfText - ?"); assert.equal(keyMapper.getKeyIDOfText("?"), "Slash", "getKeyIDOfText - ?");
assert.equal(englishKeyMapper.getKeyIDOfText("q"), "KeyQ", "getKeyIDOfText - q"); assert.equal(keyMapper.getKeyIDOfText("q"), "KeyQ", "getKeyIDOfText - q");
assert.equal(englishKeyMapper.getKeyIDOfText("Q"), "KeyQ", "getKeyIDOfText - Q"); assert.equal(keyMapper.getKeyIDOfText("Q"), "KeyQ", "getKeyIDOfText - Q");
assert.equal(englishKeyMapper.getKeyIDOfText("m"), "KeyM", "getKeyIDOfText - m"); assert.equal(keyMapper.getKeyIDOfText("m"), "KeyM", "getKeyIDOfText - m");
assert.equal(englishKeyMapper.getKeyIDOfText("M"), "KeyM", "getKeyIDOfText - M"); assert.equal(keyMapper.getKeyIDOfText("M"), "KeyM", "getKeyIDOfText - M");
assert.equal(koreanKeyMapper.getKeyIDOfText("ㅂ"), "KeyQ", "getKeyIDOfText - ㅂ"); assert.equal(keyMapper.getKeyIDOfText("ㅂ"), "KeyQ", "getKeyIDOfText - ㅂ");
assert.equal(koreanKeyMapper.getKeyIDOfText("ㅃ"), "KeyQ", "getKeyIDOfText - ㅃ"); assert.equal(keyMapper.getKeyIDOfText("ㅃ"), "KeyQ", "getKeyIDOfText - ㅃ");
assert.equal(koreanKeyMapper.getKeyIDOfText("ㅡ"), "KeyM", "getKeyIDOfText - ㅡ"); assert.equal(keyMapper.getKeyIDOfText("ㅡ"), "KeyM", "getKeyIDOfText - ㅡ");
assert.equal(koreanKeyMapper.getKeyIDOfText("Backspace"), "Backspace", "getKeyIDOfText - ㅂ"); assert.equal(keyMapper.getKeyIDOfText("Backspace"), "Backspace", "getKeyIDOfText - ㅂ");
}); });
QUnit.test( "getShiftTypeOfText", function( assert ) { QUnit.test( "getShiftTypeOfText", function( assert ) {
assert.equal(englishKeyMapper.getShiftTypeOfText("`"), KeyTextData.RIGHT_HAND, "getShiftHandSide - `"); assert.equal(keyMapper.getShiftTypeOfText("`"), KeyTextData.RIGHT_HAND, "getShiftHandSide - `");
assert.equal(englishKeyMapper.getShiftTypeOfText("/"), KeyTextData.LEFT_HAND, "getShiftHandSide - /"); assert.equal(keyMapper.getShiftTypeOfText("/"), KeyTextData.LEFT_HAND, "getShiftHandSide - /");
assert.equal(englishKeyMapper.getShiftTypeOfText("q"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q"); assert.equal(keyMapper.getShiftTypeOfText("q"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q");
assert.equal(englishKeyMapper.getShiftTypeOfText("m"), KeyTextData.LEFT_HAND, "getShiftHandSide - m"); assert.equal(keyMapper.getShiftTypeOfText("m"), KeyTextData.LEFT_HAND, "getShiftHandSide - m");
assert.equal(koreanKeyMapper.getShiftTypeOfText("ㅂ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - ㅂ"); assert.equal(keyMapper.getShiftTypeOfText("ㅂ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - ㅂ");
assert.equal(koreanKeyMapper.getShiftTypeOfText("ㅃ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - ㅃ"); assert.equal(keyMapper.getShiftTypeOfText("ㅃ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - ㅃ");
assert.equal(koreanKeyMapper.getShiftTypeOfText("ㅡ"), KeyTextData.LEFT_HAND, "getShiftHandSide - ㅡ"); assert.equal(keyMapper.getShiftTypeOfText("ㅡ"), KeyTextData.LEFT_HAND, "getShiftHandSide - ㅡ");
}); });
+2 -2
View File
@@ -20,8 +20,8 @@ QUnit.test( "getAt", function( assert ) {
assert.equal(rankingRecordManager.getUserNameAt(0), "김남희"); assert.equal(rankingRecordManager.getUserNameAt(0), "김남희");
assert.equal(rankingRecordManager.getUserNameAt(4), "신현주"); assert.equal(rankingRecordManager.getUserNameAt(4), "신현주");
assert.equal(rankingRecordManager.getScoreAt(0), 1400); assert.equal(rankingRecordManager.getBestRecordAt(0), 1400);
assert.equal(rankingRecordManager.getScoreAt(4), 600); assert.equal(rankingRecordManager.getBestRecordAt(4), 600);
}); });
QUnit.test( "clear", function( assert ) { QUnit.test( "clear", function( assert ) {
+23 -8
View File
@@ -1,15 +1,30 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<title>QUnit Example</title> <title>Mata</title>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.6.0.css"> <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.6.0.css">
</head> </head>
<body> <body>
<div id="qunit"></div> <div id="qunit"></div>
<div id="qunit-fixture"></div> <div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script>
<script src="tests.js"></script> <script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script>
<script src="../src/game/lib/score_manager.js"></script>
<script src="../src/game/lib/session_storage_manager.js"></script>
<script src="../src/game/global/global_variables.js"></script>
<script src="../src/game/lib/ranking_record_manager.js"></script>
<script src="../src/game/lib/string_util.js"></script>
<script src="../src/game/lib/date_util.js"></script>
<script src="../src/game/lib/number_util.js"></script>
<script src="../src/game/typing/practice/key_mapper.js"></script>
<script src="../src/game/typing/practice/keyboard.js"></script>
<script src="../src/game/lib/history_record_manager.js"></script>
<script src="../src/game/lib/heart_manager.js"></script>
<script src="../src/game/lib/db_connect_manager.js"></script>
<script src="tdd.js"></script>
</body> </body>
</html> </html>
+519
View File
@@ -1,3 +1,522 @@
//////////////////////////////////////////////////
// KeyMapper
let keyMapper = new KeyMapper();
QUnit.test( "KeyMapper - getNormalText", function( assert ) {
assert.equal(keyMapper.getNormalText("Backquote"), "`", "getNormalText - `");
assert.equal(keyMapper.getNormalText("Slash"), "/", "getNormalText - /");
assert.equal(keyMapper.getNormalText("KeyQ", Keyboard.ENGLISH), "q", "getNormalText - q");
assert.equal(keyMapper.getNormalText("KeyM", Keyboard.ENGLISH), "m", "getNormalText - m");
assert.equal(keyMapper.getNormalText("KeyQ", Keyboard.KOREAN), "ㅂ", "getNormalText - ㅂ");
assert.equal(keyMapper.getNormalText("KeyM", Keyboard.KOREAN), "ㅡ", "getNormalText - ㅡ");
});
QUnit.test( "KeyMapper - getShiftText", function( assert ) {
assert.equal(keyMapper.getShiftText("Backquote"), "~", "getShiftText - ~");
assert.equal(keyMapper.getShiftText("Slash"), "?", "getShiftText - ?");
assert.equal(keyMapper.getShiftText("KeyQ", Keyboard.ENGLISH), "Q", "getShiftText - Q");
assert.equal(keyMapper.getShiftText("KeyM", Keyboard.ENGLISH), "M", "getShiftText - M");
assert.equal(keyMapper.getShiftText("KeyQ", Keyboard.KOREAN), "ㅃ", "getShiftText - ㅃ");
assert.equal(keyMapper.getShiftText("KeyM", Keyboard.KOREAN), "ㅡ", "getShiftText - ㅡ");
});
/*
QUnit.test( "KeyMapper - getShiftHandSide", function( assert ) {
assert.equal(keyMapper.getShiftHandSide("Backquote"), KeyTextData.RIGHT_HAND, "getShiftHandSide - `");
assert.equal(keyMapper.getShiftHandSide("Slash"), KeyTextData.LEFT_HAND, "getShiftHandSide - /");
assert.equal(keyMapper.getShiftHandSide("Space"), KeyTextData.BOTH_HAND, "getShiftHandSide - space");
assert.equal(keyMapper.getShiftHandSide("KeyQ"), KeyTextData.RIGHT_HAND, "getShiftHandSide - q");
assert.equal(keyMapper.getShiftHandSide("KeyM"), KeyTextData.LEFT_HAND, "getShiftHandSide - m");
assert.equal(keyMapper.getShiftHandSide("KeyQ", Keyboard.KOREAN), KeyTextData.RIGHT_HAND, "getShiftHandSide - q");
assert.equal(keyMapper.getShiftHandSide("KeyM", Keyboard.KOREAN), KeyTextData.LEFT_HAND, "getShiftHandSide - m");
});
*/
QUnit.test( "KeyMapper - getKeyIDOfText", function( assert ) {
assert.equal(keyMapper.getKeyIDOfText("`"), "Backquote", "getKeyIDOfText - `");
assert.equal(keyMapper.getKeyIDOfText("~"), "Backquote", "getKeyIDOfText - ~");
assert.equal(keyMapper.getKeyIDOfText("/"), "Slash", "getKeyIDOfText - /");
assert.equal(keyMapper.getKeyIDOfText("?"), "Slash", "getKeyIDOfText - ?");
assert.equal(keyMapper.getKeyIDOfText("q"), "KeyQ", "getKeyIDOfText - q");
assert.equal(keyMapper.getKeyIDOfText("Q"), "KeyQ", "getKeyIDOfText - Q");
assert.equal(keyMapper.getKeyIDOfText("m"), "KeyM", "getKeyIDOfText - m");
assert.equal(keyMapper.getKeyIDOfText("M"), "KeyM", "getKeyIDOfText - M");
assert.equal(keyMapper.getKeyIDOfText("ㅂ"), "KeyQ", "getKeyIDOfText - ㅂ");
assert.equal(keyMapper.getKeyIDOfText("ㅃ"), "KeyQ", "getKeyIDOfText - ㅃ");
assert.equal(keyMapper.getKeyIDOfText("ㅡ"), "KeyM", "getKeyIDOfText - ㅡ");
assert.equal(keyMapper.getKeyIDOfText("Backspace"), "Backspace", "getKeyIDOfText - ㅂ");
});
QUnit.test( "KeyMapper - isShiftText", function( assert ) {
assert.equal(keyMapper.isShiftText("`"), false, "isShiftText - `");
assert.equal(keyMapper.isShiftText("~"), true, "isShiftText - ~");
assert.equal(keyMapper.isShiftText("/"), false, "isShiftText - /");
assert.equal(keyMapper.isShiftText("?"), true, "isShiftText - ?");
assert.equal(keyMapper.isShiftText("q"), false, "isShiftText - q");
assert.equal(keyMapper.isShiftText("Q"), true, "isShiftText - Q");
assert.equal(keyMapper.isShiftText("m"), false, "isShiftText - m");
assert.equal(keyMapper.isShiftText("M"), true, "isShiftText - M");
assert.equal(keyMapper.isShiftText("ㅂ"), false, "isShiftText - ㅂ");
assert.equal(keyMapper.isShiftText("ㅃ"), true, "isShiftText - ㅃ");
assert.equal(keyMapper.isShiftText("ㅡ"), true, "isShiftText - ㅡ");
});
//////////////////////////////////////////////////
// DBConnectManager
let dbConnectManager = new DBConnectManager();
dbConnectManager.setMaestroID(0);
dbConnectManager.setPlayerID(0);
dbConnectManager.setDateTime("2018-05-16", "14:50:00");
QUnit.test( "DBConnectManager - User login", function( assert ) {
let returnPlayerID = -1;
let done = assert.async();
setTimeout(function() {
dbConnectManager.requestCheckUserLogin(
"jisangs", "test", "111111",
(jsonData) => {
returnPlayerID = jsonData["UserID"];
assert.equal(returnPlayerID, 31);
done();
},
(jsonData) => {
console.log(jsonData);
done();
}
);
});
});
QUnit.test( "DBConnectManager - Player history", function( assert ) {
sessionStorageManager.maestroID = 1; // jisangs
sessionStorageManager.playerUserID = "8"; // 부현율
sessionStorageManager.playingAppID = 29;
let date = "2018-05-16";
let done = assert.async();
setTimeout(function() {
dbConnectManager.requestPlayerHistory(
1, // maestroID for jisangs
date,
(historyRecordManager) => {
// console.log(historyRecordManager);
assert.equal(historyRecordManager.getAppNameAt(0), "test_korean_word");
assert.equal(historyRecordManager.getDateAt(0), "2018-05-16");
assert.equal(historyRecordManager.getBestRecordAt(0), 108.248);
assert.equal(historyRecordManager.getAppNameAt(4), "test_korean_word");
assert.equal(historyRecordManager.getDateAt(4), "2018-04-23");
assert.equal(historyRecordManager.getBestRecordAt(4), 74.2234);
done();
}
);
});
});
QUnit.test( "DBConnectManager - Player ranking", function( assert ) {
sessionStorageManager.maestroID = 1; // jisangs
sessionStorageManager.playingAppID = 29;
let date = "2018-05-16";
let time = "14:50:00";
let done = assert.async(3);
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_HOUR,
1, // maestroID for jisangs
date,
time,
(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.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");
done();
}
);
});
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_DAY,
1, // maestroID for jisangs
date,
time,
(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.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");
done();
}
);
});
setTimeout(function() {
dbConnectManager.requestRanking(
DBConnectManager.TYPE_MY_RANKING_MONTH,
1, // maestroID for jisangs
date,
time,
(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.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");
done();
}
);
});
});
QUnit.test( "DBConnectManager - HowToPlay", function( assert ) {
let howToPlayForSpaceInvaders = "외계인이 나타났다!\\n마우스 왼쪽 버튼으로\\n외계인을 클릭해서 물리쳐 주세요.";
let done = assert.async(2);
setTimeout(function() {
dbConnectManager.requestHowToPlay(
101, // space_invaders app ID
(jsonData) => {
let howToPlay = jsonData["HowToPlay"];
assert.equal(howToPlay, howToPlayForSpaceInvaders);
done();
},
(jsonData) => {
console.log(jsonData);
done();
}
);
dbConnectManager.requestHowToPlay(
1, // korean basic typing
(jsonData) => {
let howToPlay = jsonData["HowToPlay"];
assert.equal(howToPlay, "");
done();
},
(jsonData) => {
console.log(jsonData);
done();
}
);
});
});
QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) {
let todayBestRecord = 0;
let done = assert.async();
setTimeout(function() {
dbConnectManager.requestTodayBestRecord(
1, // maestro ID for "jisangs"
1, // user ID for jisangs
101, // space_invaders app ID
(jsonData) => {
todayBestRecord = jsonData["BestRecord"];
},
(jsonData) => {
console.log(jsonData);
todayBestRecord = 0;
}
);
});
setTimeout(function() {
dbConnectManager.updateTodayBestRecord(
1, // maestro ID for "jisangs"
1, // user ID for jisangs
101, // space_invaders app ID
todayBestRecord + 1000 // new record
);
}, 100);
setTimeout(function() {
dbConnectManager.requestTodayBestRecord(
1, // maestro ID for "jisangs"
1, // user ID for jisangs
101, // space_invaders app ID
(jsonData) => {
let bestRecord = jsonData["BestRecord"];
assert.equal(bestRecord, todayBestRecord + 1000);
done();
},
(jsonData) => {
console.log(jsonData);
done();
}
);
}, 200);
});
//////////////////////////////////////////////////
// HeartManager
let heartManager = new HeartManager();
QUnit.test( "HeartManager - MaxCount", function( assert ) {
heartManager.setCount(3);
assert.equal(heartManager.getCount(), 3);
heartManager.setMaxCount(5);
assert.equal(heartManager.getCount(), 3);
heartManager.setMaxCount(3);
assert.equal(heartManager.getCount(), 3);
heartManager.setMaxCount(2);
assert.equal(heartManager.getCount(), 2);
});
QUnit.test( "HeartManager - setCount", function( assert ) {
heartManager.setMaxCount(3);
heartManager.setCount(3);
assert.equal(heartManager.getCount(), 3);
heartManager.setCount(2);
assert.equal(heartManager.getCount(), 2);
});
QUnit.test( "HeartManager - addHearts", function( assert ) {
heartManager.setMaxCount(3);
heartManager.setCount(1);
assert.equal(heartManager.getCount(), 1);
heartManager.addHearts(1);
assert.equal(heartManager.getCount(), 2);
heartManager.setCount(1);
assert.equal(heartManager.getCount(), 1);
heartManager.addHearts(2);
assert.equal(heartManager.getCount(), 3);
heartManager.setCount(1);
assert.equal(heartManager.getCount(), 1);
heartManager.addHearts(3);
assert.equal(heartManager.getCount(), 3);
});
QUnit.test( "HeartManager - breakHearts", function( assert ) {
heartManager.setMaxCount(3);
heartManager.setCount(3);
assert.equal(heartManager.getCount(), 3);
heartManager.breakHearts(1);
assert.equal(heartManager.getCount(), 2);
heartManager.breakHearts(2);
assert.equal(heartManager.getCount(), 0);
});
//////////////////////////////////////////////////
// HistoryRecordManager
let historyRecordManager = new HistoryRecordManager();
historyRecordManager.push(new HistoryRecord("05/10", "space_invaders", 1000));
historyRecordManager.push(new HistoryRecord("05/11", "typing_korean_basic", 100));
historyRecordManager.push(new HistoryRecord("05/12", "cooking_meats", 200));
historyRecordManager.push(new HistoryRecord("05/13", "typing_english_basic", 2000));
historyRecordManager.push(new HistoryRecord("05/14", "test", 10000));
QUnit.test( "HistoryRecordManager - push", function( assert ) {
assert.equal(historyRecordManager.count, 5);
});
QUnit.test( "HistoryRecordManager - getAt", function( assert ) {
assert.equal(historyRecordManager.getDateAt(0), "05/10");
assert.equal(historyRecordManager.getDateAt(4), "05/14");
assert.equal(historyRecordManager.getAppNameAt(0), "space_invaders");
assert.equal(historyRecordManager.getAppNameAt(4), "test");
});
QUnit.test( "HistoryRecordManager - clear", function( assert ) {
let historyRecordManagerForClear = new HistoryRecordManager();
historyRecordManagerForClear.push(new HistoryRecord("05/10", "space_invaders", 1));
historyRecordManagerForClear.clear();
assert.equal(historyRecordManagerForClear.count, 0);
});
QUnit.test( "HistoryRecordManager - underValueForGraph", function( assert ) {
assert.equal(historyRecordManager.underValueForGraph(), 100);
});
QUnit.test( "HistoryRecordManager - upperValueForGraph", function( assert ) {
assert.equal(historyRecordManager.upperValueForGraph(), 10000);
});
//////////////////////////////////////////////////
// NumberUtil
QUnit.test( "NumberUtil - NumberWithCommas", function( assert ) {
assert.equal(NumberUtil.numberWithCommas(1), "1", "NumberWithCommas");
assert.equal(NumberUtil.numberWithCommas(1000), "1,000", "NumberWithCommas");
assert.equal(NumberUtil.numberWithCommas(100000), "100,000", "NumberWithCommas");
assert.equal(NumberUtil.numberWithCommas(1000000), "1,000,000", "NumberWithCommas");
});
QUnit.test( "NumberUtil - NumberOfDigits", function( assert ) {
assert.equal(NumberUtil.numberOfDigits(1), 1);
assert.equal(NumberUtil.numberOfDigits(10), 2);
assert.equal(NumberUtil.numberOfDigits(100), 3);
assert.equal(NumberUtil.numberOfDigits(999), 3);
assert.equal(NumberUtil.numberOfDigits(1000), 4);
assert.equal(NumberUtil.numberOfDigits(9999), 4);
assert.equal(NumberUtil.numberOfDigits(10000), 5);
assert.equal(NumberUtil.numberOfDigits(99999), 5);
});
//////////////////////////////////////////////////
// RankingRecordManager
let rankingRecordManager = new RankingRecordManager();
rankingRecordManager.push(new RankingRecord(4, 1, "김남희", 1400));
rankingRecordManager.push(new RankingRecord(5, 2, "고봉순", 900));
rankingRecordManager.push(new RankingRecord(6, 3, "파르마", 800));
rankingRecordManager.push(new RankingRecord(7, 4, "박지상", 700));
rankingRecordManager.push(new RankingRecord(8, 5, "신현주", 600));
QUnit.test( "RankingRecordManager - push", function( assert ) {
assert.equal(rankingRecordManager.count, 5);
});
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.getUserNameAt(0), "김남희");
assert.equal(rankingRecordManager.getUserNameAt(4), "신현주");
assert.equal(rankingRecordManager.getBestRecordAt(0), 1400);
assert.equal(rankingRecordManager.getBestRecordAt(4), 600);
});
QUnit.test( "RankingRecordManager - clear", function( assert ) {
let rankingRecordManagerForClear = new RankingRecordManager();
rankingRecordManagerForClear.push(new RankingRecord(8, "신현주", 600));
rankingRecordManagerForClear.clear();
assert.equal(rankingRecordManagerForClear.count, 0);
});
//////////////////////////////////////////////////
// ScoreManager
let scoreManager = new ScoreManager();
QUnit.test( "ScoreManager - plusScore", function( assert ) {
assert.equal(scoreManager.score, 0);
scoreManager.plusScore(10);
assert.equal(scoreManager.score, 10);
scoreManager.minusScore(10);
assert.equal(scoreManager.score, 0);
});
//////////////////////////////////////////////////
// SessionStorageManager
QUnit.test( "SessionStorageManager - PlayerName", function( assert ) {
sessionStorageManager.clear();
assert.equal(sessionStorageManager.playerName, null, "playerName");
sessionStorageManager.playerName = "박지상";
assert.equal(sessionStorageManager.playerName, "박지상", "playerName");
sessionStorageManager.removeItem("playerName");
assert.equal(sessionStorageManager.playerName, null, "playerName");
});
QUnit.test( "SessionStorageManager - playerUserID", function( assert ) {
sessionStorageManager.clear();
assert.equal(sessionStorageManager.playerUserID, null, "playerUserID");
sessionStorageManager.playerUserID = 1;
assert.equal(sessionStorageManager.playerUserID, 1, "playerUserID");
sessionStorageManager.removeItem("playerUserID");
assert.equal(sessionStorageManager.playerUserID, null, "playerUserID");
});
QUnit.test( "SessionStorageManager - playingAppName", function( assert ) {
sessionStorageManager.clear();
assert.equal(sessionStorageManager.playingAppName, null, "playingAppName");
sessionStorageManager.playingAppName = "space_invaders";
assert.equal(sessionStorageManager.playingAppName, "space_invaders", "playingAppName");
sessionStorageManager.removeItem("playingAppName");
assert.equal(sessionStorageManager.playingAppName, null, "playingAppName");
});
//////////////////////////////////////////////////
// test
QUnit.test( "hello test", function( assert ) { QUnit.test( "hello test", function( assert ) {
assert.ok( 1 == "1", "Passed!" ); assert.ok( 1 == "1", "Passed!" );
}); });