Add: test_db_connect_manager
This commit is contained in:
@@ -22,13 +22,13 @@ const GAME_SCREEN_SIZE = { x: 1024, y: 768 }
|
|||||||
|
|
||||||
let sessionStorageManager = new SessionStorageManager();
|
let sessionStorageManager = new SessionStorageManager();
|
||||||
{
|
{
|
||||||
if(isDebugMode()) {
|
// if(isDebugMode()) {
|
||||||
sessionStorageManager.playerName = "부현율";
|
// sessionStorageManager.playerName = "부현율";
|
||||||
sessionStorageManager.playerUserID = 8;
|
// sessionStorageManager.playerUserID = 8;
|
||||||
sessionStorageManager.playingAppName = "space_invaders";
|
// sessionStorageManager.playingAppName = "space_invaders";
|
||||||
sessionStorageManager.score = 1000;
|
// sessionStorageManager.score = 1000;
|
||||||
sessionStorageManager.highScore = 2000;
|
// sessionStorageManager.highScore = 2000;
|
||||||
}
|
// }
|
||||||
|
|
||||||
console.log("maestroID : " + sessionStorageManager.maestroID);
|
console.log("maestroID : " + sessionStorageManager.maestroID);
|
||||||
console.log("playerName : " + sessionStorageManager.playerName);
|
console.log("playerName : " + sessionStorageManager.playerName);
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
class DBConnectManager {
|
class DBConnectManager {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
this.path = this.getPath();
|
||||||
|
this.directoryName = this.getDirectoryName(this.path);
|
||||||
|
this.phpPath = this.getPHPPath(this.directoryName);
|
||||||
|
|
||||||
this.maestroID = 0;
|
this.maestroID = 0;
|
||||||
this.playerUserID = 0;
|
this.playerUserID = 0;
|
||||||
this.appName = "";
|
this.appName = "";
|
||||||
|
this.dateAndTime = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
setMaestro(maestroID) {
|
setMaestroID(maestroID) {
|
||||||
this.maestroID = maestroID;
|
this.maestroID = maestroID;
|
||||||
}
|
}
|
||||||
|
|
||||||
setPlayer(userID) {
|
setPlayerID(userID) {
|
||||||
this.playerUserID = userID;
|
this.playerUserID = userID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -18,9 +23,33 @@ class DBConnectManager {
|
|||||||
this.appName = appName;
|
this.appName = appName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setDateTime(date, time) {
|
||||||
|
this.dateAndTime = date + time;
|
||||||
|
}
|
||||||
|
|
||||||
|
resetDateTime() {
|
||||||
|
this.dateAndTime = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
getPath() {
|
||||||
|
return window.location.pathname;
|
||||||
|
}
|
||||||
|
|
||||||
|
getDirectoryName(path) {
|
||||||
|
let pathAndFileNames = path.split("/");
|
||||||
|
return pathAndFileNames[pathAndFileNames.length - 2];
|
||||||
|
}
|
||||||
|
|
||||||
|
getPHPPath(directoryName) {
|
||||||
|
if(directoryName === "test") // mouse_typing/test/
|
||||||
|
return "../src/web/";
|
||||||
|
else // mousetyping/src/web/client/
|
||||||
|
return "../";
|
||||||
|
}
|
||||||
|
|
||||||
requestCheckUserLogin(userName, enterCode, onSucceededListener, onFailedListener) {
|
requestCheckUserLogin(userName, enterCode, onSucceededListener, onFailedListener) {
|
||||||
let xhr = new XMLHttpRequest();
|
let xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", "../../web/server/user/login.php", true);
|
xhr.open("POST", this.phpPath + "server/user/login.php", true);
|
||||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if(xhr.readyState == 4 && xhr.status == 200) {
|
if(xhr.readyState == 4 && xhr.status == 200) {
|
||||||
@@ -32,7 +61,7 @@ class DBConnectManager {
|
|||||||
onFailedListener(jsonData);
|
onFailedListener(jsonData);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
xhr.send("name=" + sessionStorageManager.playerName + "&enter_code=" + enterCode);
|
xhr.send("name=" + userName + "&enter_code=" + enterCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
requestPlayerHistory(listener) {
|
requestPlayerHistory(listener) {
|
||||||
@@ -52,7 +81,7 @@ class DBConnectManager {
|
|||||||
let self = this;
|
let self = this;
|
||||||
|
|
||||||
let xhr = new XMLHttpRequest();
|
let xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", "../../web/server/record/history_record.php", true);
|
xhr.open("POST", this.phpPath + "server/record/history_record.php", true);
|
||||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if(xhr.readyState == 4 && xhr.status == 200) {
|
if(xhr.readyState == 4 && xhr.status == 200) {
|
||||||
@@ -128,7 +157,7 @@ class DBConnectManager {
|
|||||||
let self = this;
|
let self = this;
|
||||||
|
|
||||||
let xhr = new XMLHttpRequest();
|
let xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", this.getPHPUrl(type), true);
|
xhr.open("POST", this.getRankingRecordUrl(type), true);
|
||||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if(xhr.readyState == 4 && xhr.status == 200) {
|
if(xhr.readyState == 4 && xhr.status == 200) {
|
||||||
@@ -146,22 +175,27 @@ class DBConnectManager {
|
|||||||
xhr.send(params);
|
xhr.send(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPHPUrl(type) {
|
getRankingRecordUrl(type) {
|
||||||
|
let rankingRecordURL = this.phpPath;
|
||||||
|
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case DBConnectManager.TYPE_MY_RANKING_HOUR:
|
case DBConnectManager.TYPE_MY_RANKING_HOUR:
|
||||||
case DBConnectManager.TYPE_ALL_RANKING_HOUR:
|
case DBConnectManager.TYPE_ALL_RANKING_HOUR:
|
||||||
return "../../web/server/record/ranking_hour_record.php";
|
rankingRecordURL += "server/record/ranking_record_hour.php";
|
||||||
|
break;
|
||||||
|
|
||||||
case DBConnectManager.TYPE_MY_RANKING_DAY:
|
case DBConnectManager.TYPE_MY_RANKING_DAY:
|
||||||
case DBConnectManager.TYPE_ALL_RANKING_DAY:
|
case DBConnectManager.TYPE_ALL_RANKING_DAY:
|
||||||
return "../../web/server/record/ranking_day_record.php";
|
rankingRecordURL += "server/record/ranking_record_day.php";
|
||||||
|
break;
|
||||||
|
|
||||||
case DBConnectManager.TYPE_MY_RANKING_MONTH:
|
case DBConnectManager.TYPE_MY_RANKING_MONTH:
|
||||||
case DBConnectManager.TYPE_ALL_RANKING_MONTH:
|
case DBConnectManager.TYPE_ALL_RANKING_MONTH:
|
||||||
return "../../web/server/record/ranking_month_record.php";
|
rankingRecordURL += "server/record/ranking_record_month.php";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return rankingRecordURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseJSONtoRankingRecord(type, json) {
|
parseJSONtoRankingRecord(type, json) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class HistoryBoard {
|
|||||||
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
|
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
|
||||||
|
|
||||||
this.dbConnectManager.requestPlayerHistory( historyRecordManager => {
|
this.dbConnectManager.requestPlayerHistory( historyRecordManager => {
|
||||||
let maxIndex = historyRecordManager.count;
|
let maxIndex = historyRecordManager.count - 1;
|
||||||
if(maxIndex > 6)
|
if(maxIndex > 6)
|
||||||
maxIndex = 6;
|
maxIndex = 6;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
include "./../lib/send_error_code.php";
|
||||||
|
|
||||||
|
$user_id = $_POST["UserID"];
|
||||||
|
$app_name = $_POST["AppName"];
|
||||||
|
|
||||||
|
include "./../setup/connect_db.php";
|
||||||
|
|
||||||
|
|
||||||
|
// ranking month
|
||||||
|
/*
|
||||||
|
$query = "
|
||||||
|
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
|
||||||
|
FROM moty_record D, moty_user U
|
||||||
|
WHERE D.userID = U.userID AND MONTH(D.DateTime) = MONTH(NOW()) AND AppName = ?
|
||||||
|
GROUP BY D.userID
|
||||||
|
ORDER BY max(D.Score) DESC;
|
||||||
|
";
|
||||||
|
*/
|
||||||
|
$query = "
|
||||||
|
SELECT D.userID As UserID, U.Name AS Name, MAX(D.Score) AS HighScore
|
||||||
|
FROM moty_record D, moty_user U
|
||||||
|
WHERE D.userID = U.userID AND MONTH(D.DateTime) = MONTH('2018-05-18') AND AppName = 'korean_word'
|
||||||
|
GROUP BY D.userID
|
||||||
|
ORDER BY max(D.Score) DESC;
|
||||||
|
";
|
||||||
|
$stmt = $db_conn->prepare($query);
|
||||||
|
$stmt->bind_param('s', $app_name);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
$stmt->bind_result($userID, $name, $high_score);
|
||||||
|
|
||||||
|
$score_record_array = array();
|
||||||
|
while($stmt->fetch()) {
|
||||||
|
$score_record['UserID'] = $userID;
|
||||||
|
$score_record['Name'] = $name;
|
||||||
|
$score_record['HighScore'] = $high_score;
|
||||||
|
array_push($score_record_array, $score_record);
|
||||||
|
}
|
||||||
|
$return_array['rankingMonth'] = $score_record_array;
|
||||||
|
|
||||||
|
echo json_encode($return_array, JSON_UNESCAPED_UNICODE);
|
||||||
|
|
||||||
|
|
||||||
|
$db_conn->close();
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>DB Connect Manager</title>
|
||||||
|
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.6.0.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="qunit"></div>
|
||||||
|
<div id="qunit-fixture"></div>
|
||||||
|
<script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script>
|
||||||
|
|
||||||
|
<script src="../src/game/lib/app_info_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/history_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="test_db_connect_manager.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
let dbConnectManager = new DBConnectManager();
|
||||||
|
dbConnectManager.setMaestroID(0);
|
||||||
|
dbConnectManager.setPlayerID(0);
|
||||||
|
dbConnectManager.setDateTime("2018-05-16", "14:50:00");
|
||||||
|
|
||||||
|
QUnit.test( "User login", function( assert ) {
|
||||||
|
let returnPlayerID = -1;
|
||||||
|
|
||||||
|
let done = assert.async();
|
||||||
|
setTimeout(function() {
|
||||||
|
dbConnectManager.requestCheckUserLogin(
|
||||||
|
"test", "111111",
|
||||||
|
(jsonData) => {
|
||||||
|
returnPlayerID = jsonData["UserID"];
|
||||||
|
assert.equal(returnPlayerID, 31);
|
||||||
|
done();
|
||||||
|
},
|
||||||
|
(jsonData) => {
|
||||||
|
console.log(jsonData);
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test( "Player history", function( assert ) {
|
||||||
|
sessionStorageManager.playerUserID = "8"; // 부현율
|
||||||
|
sessionStorageManager.playingAppName = "space_invaders";
|
||||||
|
let date = "2018-05-16";
|
||||||
|
let time = "14:50:00";
|
||||||
|
|
||||||
|
let done = assert.async();
|
||||||
|
setTimeout(function() {
|
||||||
|
dbConnectManager.requestPlayerHistory(
|
||||||
|
(historyRecordManager) => {
|
||||||
|
console.log(historyRecordManager);
|
||||||
|
|
||||||
|
assert.equal(historyRecordManager.getAppNameAt(0), "korean_left_lower");
|
||||||
|
assert.equal(historyRecordManager.getDateAt(0), "2018-04-02");
|
||||||
|
assert.equal(historyRecordManager.getScoreAt(0), 22);
|
||||||
|
|
||||||
|
assert.equal(historyRecordManager.getAppNameAt(4), "korean_word");
|
||||||
|
assert.equal(historyRecordManager.getDateAt(4), "2018-05-09");
|
||||||
|
assert.equal(historyRecordManager.getScoreAt(4), 85.1965);
|
||||||
|
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test( "Player ranking", function( assert ) {
|
||||||
|
sessionStorageManager.playerUserID = "8"; // 부현율
|
||||||
|
sessionStorageManager.playingAppName = "space_invaders";
|
||||||
|
let date = "2018-05-16";
|
||||||
|
let time = "14:50:00";
|
||||||
|
|
||||||
|
let done = assert.async(3);
|
||||||
|
|
||||||
|
setTimeout(function() {
|
||||||
|
dbConnectManager.requestRanking(
|
||||||
|
DBConnectManager.TYPE_MY_RANKING_HOUR,
|
||||||
|
(type, rankingRecordManager) => {
|
||||||
|
console.log(rankingRecordManager);
|
||||||
|
|
||||||
|
assert.equal(rankingRecordManager.getRankAt(0), 1, "hour");
|
||||||
|
assert.equal(rankingRecordManager.getScoreAt(0), 245.547, "hour");
|
||||||
|
assert.equal(rankingRecordManager.getUserIDAt(0), 5, "hour");
|
||||||
|
assert.equal(rankingRecordManager.getUserNameAt(0), "김지유", "hour");
|
||||||
|
|
||||||
|
assert.equal(rankingRecordManager.getRankAt(5), 6, "hour");
|
||||||
|
assert.equal(rankingRecordManager.getScoreAt(5), 52.7276, "hour");
|
||||||
|
assert.equal(rankingRecordManager.getUserIDAt(5), 14, "hour");
|
||||||
|
assert.equal(rankingRecordManager.getUserNameAt(5), "송가윤", "hour");
|
||||||
|
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
setTimeout(function() {
|
||||||
|
dbConnectManager.requestRanking(
|
||||||
|
DBConnectManager.TYPE_MY_RANKING_DAY,
|
||||||
|
(type, rankingRecordManager) => {
|
||||||
|
console.log(rankingRecordManager);
|
||||||
|
|
||||||
|
assert.equal(rankingRecordManager.getRankAt(0), 1, "day");
|
||||||
|
assert.equal(rankingRecordManager.getScoreAt(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.getScoreAt(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,
|
||||||
|
(type, rankingRecordManager) => {
|
||||||
|
console.log(rankingRecordManager);
|
||||||
|
|
||||||
|
assert.equal(rankingRecordManager.getRankAt(0), 1);
|
||||||
|
assert.equal(rankingRecordManager.getScoreAt(0), 617.231);
|
||||||
|
assert.equal(rankingRecordManager.getUserIDAt(0), 50);
|
||||||
|
assert.equal(rankingRecordManager.getUserNameAt(0), "강민준");
|
||||||
|
|
||||||
|
assert.equal(rankingRecordManager.getRankAt(17), 18);
|
||||||
|
assert.equal(rankingRecordManager.getScoreAt(17), 216.279);
|
||||||
|
assert.equal(rankingRecordManager.getUserIDAt(17), 9);
|
||||||
|
assert.equal(rankingRecordManager.getUserNameAt(17), "신예성");
|
||||||
|
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
let rankingRecordManager = new RankingRecordManager();
|
let rankingRecordManager = new RankingRecordManager();
|
||||||
|
|
||||||
rankingRecordManager.push(new RankingRecord(4, "김남희", 1400));
|
rankingRecordManager.push(new RankingRecord(4, 1, "김남희", 1400));
|
||||||
rankingRecordManager.push(new RankingRecord(5, "고봉순", 900));
|
rankingRecordManager.push(new RankingRecord(5, 2, "고봉순", 900));
|
||||||
rankingRecordManager.push(new RankingRecord(6, "파르마", 800));
|
rankingRecordManager.push(new RankingRecord(6, 3, "파르마", 800));
|
||||||
rankingRecordManager.push(new RankingRecord(7, "박지상", 700));
|
rankingRecordManager.push(new RankingRecord(7, 4, "박지상", 700));
|
||||||
rankingRecordManager.push(new RankingRecord(8, "신현주", 600));
|
rankingRecordManager.push(new RankingRecord(8, 5, "신현주", 600));
|
||||||
|
|
||||||
QUnit.test( "push", function( assert ) {
|
QUnit.test( "push", function( assert ) {
|
||||||
assert.equal(rankingRecordManager.count, 5);
|
assert.equal(rankingRecordManager.count, 5);
|
||||||
@@ -14,6 +14,9 @@ QUnit.test( "getAt", function( assert ) {
|
|||||||
assert.equal(rankingRecordManager.getRankAt(0), 4);
|
assert.equal(rankingRecordManager.getRankAt(0), 4);
|
||||||
assert.equal(rankingRecordManager.getRankAt(4), 8);
|
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(0), "김남희");
|
||||||
assert.equal(rankingRecordManager.getUserNameAt(4), "신현주");
|
assert.equal(rankingRecordManager.getUserNameAt(4), "신현주");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user