ちんこ
This commit is contained in:
@@ -6,218 +6,224 @@ require_once __DIR__.'/../../../autoload.php';
|
||||
use Site\Lib\Tester;
|
||||
use Site\Lib\Auth;
|
||||
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
if (AUTH_ENABLED) {
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
|
||||
$test->describe('ユーザー登録', function($test): void {
|
||||
$test->it('アカウントを作成出来るはず', function($test): void {
|
||||
$user = "admin1234";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.co.jp";
|
||||
if (AUTH_REGISTER_ENABLED) {
|
||||
$test->describe('ユーザー登録', function($test): void {
|
||||
$test->it('アカウントを作成出来るはず', function($test): void {
|
||||
$user = "admin1234";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.co.jp";
|
||||
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = true;
|
||||
$expect = true;
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->isSuccess, $expect);
|
||||
});
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->isSuccess, $expect);
|
||||
});
|
||||
|
||||
$test->it('空フィールドでアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.ne.jp";
|
||||
$test->it('空フィールドでアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.ne.jp";
|
||||
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:ユーザー名をご入力下さい。'.'<br />';
|
||||
$expect = 'エラー:ユーザー名をご入力下さい。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
|
||||
$user = "admin5678";
|
||||
$pass = "";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$user = "admin5678";
|
||||
$pass = "";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:パスワードをご入力下さい。'.'<br />';
|
||||
$expect = 'エラー:パスワードをご入力下さい。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$email = "";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$email = "";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:メールアドレスをご入力下さい。'.'<br />';
|
||||
$expect = 'エラー:メールアドレスをご入力下さい。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
|
||||
$test->it('既にユーザー名やメールアドレスが存在するアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "admin1234";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.ne.jp";
|
||||
$test->it('既にユーザー名やメールアドレスが存在するアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "admin1234";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.ne.jp";
|
||||
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'ユーザー「admin1234」は既に存在します。'.'<br />';
|
||||
$expect = 'ユーザー「admin1234」は既に存在します。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
|
||||
$user = "admin5678";
|
||||
$email = "test@076.co.jp";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$user = "admin5678";
|
||||
$email = "test@076.co.jp";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'ユーザー「test@076.co.jp」は既に存在します。'.'<br />';
|
||||
$expect = 'ユーザー「test@076.co.jp」は既に存在します。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
|
||||
$test->it('一致しない、短い、又は不安なパスワードでアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "admin5678";
|
||||
$pass = "testtest1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.ne.jp";
|
||||
$test->it('一致しない、短い、又は不安なパスワードでアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "admin5678";
|
||||
$pass = "testtest1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.ne.jp";
|
||||
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:パスワードは一致していません。'.'<br />';
|
||||
$expect = 'エラー:パスワードは一致していません。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
|
||||
$pass = "testTEST1234";
|
||||
$passVerify = "testTEST1234";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$pass = "testTEST1234";
|
||||
$passVerify = "testTEST1234";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:パスワードは20以上をご入力下さい。'.'<br />';
|
||||
$expect = 'エラー:パスワードは20以上をご入力下さい。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
|
||||
$pass = "testTEST1234testTEST";
|
||||
$passVerify = "testTEST1234testTEST";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$pass = "testTEST1234testTEST";
|
||||
$passVerify = "testTEST1234testTEST";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:パスワードは2つ以上の大文字、2つ以上の小文字、2つ以上の数字、及び2つ以上の特別文字を含む事が必須です。'.'<br />';
|
||||
$expect = 'エラー:パスワードは2つ以上の大文字、2つ以上の小文字、2つ以上の数字、及び2つ以上の特別文字を含む事が必須です。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
|
||||
$test->it('不正なメールアドレスでアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "admin5678";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.niggerballs";
|
||||
$test->it('不正なメールアドレスでアカウントを作成出来ないはず', function($test): void {
|
||||
$user = "admin5678";
|
||||
$pass = "testTEST1234!#$%@[]:;";
|
||||
$passVerify = "testTEST1234!#$%@[]:;";
|
||||
$email = "test@076.niggerballs";
|
||||
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$auth = new Auth();
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:メールアドレスは不正です。'.'<br />';
|
||||
$expect = 'エラー:メールアドレスは不正です。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
|
||||
$email = "test@076";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
$email = "test@076";
|
||||
$res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
|
||||
$expect = 'エラー:メールアドレスは不正です。'.'<br />';
|
||||
$expect = 'エラー:メールアドレスは不正です。'.'<br />';
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res->message, $expect);
|
||||
});
|
||||
|
||||
// ユーザーの削除
|
||||
$users = scandir(ROOT.'/data/user');
|
||||
$userFile = '';
|
||||
foreach ($users as $u) {
|
||||
if (str_contains($u, 'admin1234')) {
|
||||
$userFile = $u;
|
||||
break;
|
||||
}
|
||||
// ユーザーの削除
|
||||
$users = scandir(ROOT.'/data/user');
|
||||
$userFile = '';
|
||||
foreach ($users as $u) {
|
||||
if (str_contains($u, 'admin1234')) {
|
||||
$userFile = $u;
|
||||
break;
|
||||
}
|
||||
}
|
||||
unlink(ROOT.'/data/user/'.$userFile);
|
||||
rmdir(ROOT.'/public/static/user/admin1234');
|
||||
});
|
||||
}
|
||||
unlink(ROOT.'/data/user/'.$userFile);
|
||||
rmdir(ROOT.'/public/static/user/admin1234');
|
||||
});
|
||||
|
||||
// TODO: CLIからクッキーを設定出来ないから、「Site\Lib\Auth::getUserData(): Return value must be of type stdClass, null returned」って発生する・・・
|
||||
// $test->describe('ログインとログアウト', function($test): void {
|
||||
// $user = "admin1234";
|
||||
// $pass = "testTEST1234!#$%@[]:;";
|
||||
// $passVerify = "testTEST1234!#$%@[]:;";
|
||||
// $email = "test@076.co.jp";
|
||||
// TODO: CLIからクッキーを設定出来ないから、「Site\Lib\Auth::getUserData(): Return value must be of type stdClass, null returned」って発生する・・・
|
||||
// $test->describe('ログインとログアウト', function($test): void {
|
||||
// $user = "admin1234";
|
||||
// $pass = "testTEST1234!#$%@[]:;";
|
||||
// $passVerify = "testTEST1234!#$%@[]:;";
|
||||
// $email = "test@076.co.jp";
|
||||
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
// unset($auth);
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->mkUser($user, $pass, $passVerify, $email);
|
||||
// unset($auth);
|
||||
|
||||
// $test->it('正しい認証情報でログイン出来るはず', function($test) use ($user, $pass): void {
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->setToken($user, $pass);
|
||||
// $test->it('正しい認証情報でログイン出来るはず', function($test) use ($user, $pass): void {
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->setToken($user, $pass);
|
||||
|
||||
// $test->assertTrue($res->isSuccess);
|
||||
// $test->assertEquals('ログイン成功', $res->message);
|
||||
// $test->assertTrue($res->isSuccess);
|
||||
// $test->assertEquals('ログイン成功', $res->message);
|
||||
|
||||
// $auth2 = new Auth();
|
||||
// $usr = $auth2->getLoggedInUser();
|
||||
// $auth2 = new Auth();
|
||||
// $usr = $auth2->getLoggedInUser();
|
||||
|
||||
// $test->assertNotNull($usr);
|
||||
// $test->assertEquals($user, $usr->username);
|
||||
// });
|
||||
// $test->assertNotNull($usr);
|
||||
// $test->assertEquals($user, $usr->username);
|
||||
// });
|
||||
|
||||
// $test->it('間違ったパスワードでログイン出来ないはず', function($test) use ($user): void {
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->setToken($user, 'fuseipassword');
|
||||
// $test->it('間違ったパスワードでログイン出来ないはず', function($test) use ($user): void {
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->setToken($user, 'fuseipassword');
|
||||
|
||||
// $test->assertFalse($res->isSuccess);
|
||||
// $test->assertEquals('ユーザー名又はパスワードが一致していません', $res->message);
|
||||
// });
|
||||
// $test->assertFalse($res->isSuccess);
|
||||
// $test->assertEquals('ユーザー名又はパスワードが一致していません', $res->message);
|
||||
// });
|
||||
|
||||
// $test->it('存在しないユーザーでログイン出来ないはず', function($test) use ($pass): void {
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->setToken('fumeiuser', $pass);
|
||||
// $test->it('存在しないユーザーでログイン出来ないはず', function($test) use ($pass): void {
|
||||
// $auth = new Auth();
|
||||
// $res = $auth->setToken('fumeiuser', $pass);
|
||||
|
||||
// $test->assertFalse($res->isSuccess);
|
||||
// $test->assertEquals('ユーザー名又はパスワードが一致していません', $res->message);
|
||||
// });
|
||||
// $test->assertFalse($res->isSuccess);
|
||||
// $test->assertEquals('ユーザー名又はパスワードが一致していません', $res->message);
|
||||
// });
|
||||
|
||||
// $test->it('ログアウト出来るはず', function($test) use ($user, $pass): void {
|
||||
// $auth = new Auth();
|
||||
// $auth->setToken($user, $pass);
|
||||
// $test->it('ログアウト出来るはず', function($test) use ($user, $pass): void {
|
||||
// $auth = new Auth();
|
||||
// $auth->setToken($user, $pass);
|
||||
|
||||
// $res = $auth->logout();
|
||||
// $res = $auth->logout();
|
||||
|
||||
// $test->assertTrue($res->isSuccess);
|
||||
// $test->assertEquals('ログイン成功', $res->message);
|
||||
// $test->assertTrue($res->isSuccess);
|
||||
// $test->assertEquals('ログイン成功', $res->message);
|
||||
|
||||
// $auth2 = new Auth();
|
||||
// $usr = $auth2->getLoggedInUser();
|
||||
// $auth2 = new Auth();
|
||||
// $usr = $auth2->getLoggedInUser();
|
||||
|
||||
// $test->assertNull($usr);
|
||||
// });
|
||||
// $test->assertNull($usr);
|
||||
// });
|
||||
|
||||
// // ユーザーの削除
|
||||
// $users = scandir(ROOT.'/data/user');
|
||||
// $userFile = '';
|
||||
// foreach ($users as $u) {
|
||||
// if (str_contains($u, 'admin1234')) {
|
||||
// $userFile = $u;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// unlink(ROOT.'/data/user/'.$userFile);
|
||||
// rmdir(ROOT.'/public/static/user/admin1234');
|
||||
// });
|
||||
// // ユーザーの削除
|
||||
// $users = scandir(ROOT.'/data/user');
|
||||
// $userFile = '';
|
||||
// foreach ($users as $u) {
|
||||
// if (str_contains($u, 'admin1234')) {
|
||||
// $userFile = $u;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// unlink(ROOT.'/data/user/'.$userFile);
|
||||
// rmdir(ROOT.'/public/static/user/admin1234');
|
||||
// });
|
||||
|
||||
$test->printSummary();
|
||||
}
|
||||
@@ -7,116 +7,120 @@ use Site\Lib\Tester;
|
||||
use Site\Lib\Csv;
|
||||
use Site\Lib\Delimiter;
|
||||
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
if (CSV_ENABLED) {
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
|
||||
$test->describe('Csvの基本的なパーシング', function($test): void {
|
||||
$test->it('簡単なCSVファイルをパーシングするはず', function($test): void {
|
||||
$str = "岩田聡,プロジューサー\n宮本茂,デザイナー\nJeffrey Epstein,幼児性愛者";
|
||||
$test->describe('Csvの基本的なパーシング', function($test): void {
|
||||
$test->it('簡単なCSVファイルをパーシングするはず', function($test): void {
|
||||
$str = "岩田聡,プロジューサー\n宮本茂,デザイナー\nJeffrey Epstein,幼児性愛者";
|
||||
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_test');
|
||||
file_put_contents($tmpFile, $str);
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_test');
|
||||
file_put_contents($tmpFile, $str);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse();
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse();
|
||||
|
||||
unlink($tmpFile);
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
["岩田聡", "プロジューサー"],
|
||||
["宮本茂", "デザイナー"],
|
||||
["Jeffrey Epstein", "幼児性愛者"]
|
||||
];
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res, $expect);
|
||||
});
|
||||
|
||||
$test->it('異なるデリミタでCSVをパーシングするはず', function ($test): void {
|
||||
// セミコロン
|
||||
$semiStr = "岩田聡;プロジューサー\n宮本茂;デザイナー";
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_semi_test');
|
||||
file_put_contents($tmpFile, $semiStr);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::SEMICOLON);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
["岩田聡", "プロジューサー"],
|
||||
["宮本茂", "デザイナー"]
|
||||
];
|
||||
|
||||
$test->assertEquals($res, $expect, "セミコロンデリミタでパーシングに失敗");
|
||||
|
||||
// タブ
|
||||
$tabStr = "岩田聡\tプロジューサー\n宮本茂\tデザイナー";
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_tab_test');
|
||||
file_put_contents($tmpFile, $tabStr);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::TAB);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$test->assertEquals($res, $expect, "タブデリミタでパーシングに失敗");
|
||||
|
||||
// パイプ
|
||||
$pipeStr = "岩田聡|プロジューサー\n宮本茂|デザイナー";
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_pipe_test');
|
||||
file_put_contents($tmpFile, $pipeStr);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::PIPE);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$test->assertEquals($res, $expect, "パイプデリミタでパーシングに失敗");
|
||||
});
|
||||
|
||||
$test->it('ヘッダー付きCSVをパーシングするはず', function ($test) {
|
||||
$str = "name,job title\n岩田聡,プロジューサー\n宮本茂,デザイナー";
|
||||
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_header_test');
|
||||
file_put_contents($tmpFile, $str);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::COMMA, true); // isHeader = true
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
'header' => ["name", "job title"],
|
||||
'body' => [
|
||||
$expect = [
|
||||
["岩田聡", "プロジューサー"],
|
||||
["宮本茂", "デザイナー"],
|
||||
],
|
||||
];
|
||||
["Jeffrey Epstein", "幼児性愛者"]
|
||||
];
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res, $expect, "ヘッダーパーシングに失敗");
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res, $expect);
|
||||
});
|
||||
|
||||
$test->it('異なるデリミタでCSVをパーシングするはず', function ($test): void {
|
||||
// セミコロン
|
||||
$semiStr = "岩田聡;プロジューサー\n宮本茂;デザイナー";
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_semi_test');
|
||||
file_put_contents($tmpFile, $semiStr);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::SEMICOLON);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
["岩田聡", "プロジューサー"],
|
||||
["宮本茂", "デザイナー"]
|
||||
];
|
||||
|
||||
$test->assertEquals($res, $expect, "セミコロンデリミタでパーシングに失敗");
|
||||
|
||||
// タブ
|
||||
$tabStr = "岩田聡\tプロジューサー\n宮本茂\tデザイナー";
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_tab_test');
|
||||
file_put_contents($tmpFile, $tabStr);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::TAB);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$test->assertEquals($res, $expect, "タブデリミタでパーシングに失敗");
|
||||
|
||||
// パイプ
|
||||
$pipeStr = "岩田聡|プロジューサー\n宮本茂|デザイナー";
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_pipe_test');
|
||||
file_put_contents($tmpFile, $pipeStr);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::PIPE);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$test->assertEquals($res, $expect, "パイプデリミタでパーシングに失敗");
|
||||
});
|
||||
|
||||
$test->it('ヘッダー付きCSVをパーシングするはず', function ($test) {
|
||||
$str = "name,job title\n岩田聡,プロジューサー\n宮本茂,デザイナー";
|
||||
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_header_test');
|
||||
file_put_contents($tmpFile, $str);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(Delimiter::COMMA, true); // isHeader = true
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
'header' => ["name", "job title"],
|
||||
'body' => [
|
||||
["岩田聡", "プロジューサー"],
|
||||
["宮本茂", "デザイナー"],
|
||||
],
|
||||
];
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res, $expect, "ヘッダーパーシングに失敗");
|
||||
});
|
||||
|
||||
$test->it('セル内にカンマを含むCSVをパーシングするはず', function ($test): void {
|
||||
$str = "\"守矢, 諏訪子\",エンジニア\n\"青, 猫ちゃん\",サーバー管理者";
|
||||
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_quoted_comma_test');
|
||||
file_put_contents($tmpFile, $str);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(\Site\Lib\delimiter::COMMA);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
["守矢, 諏訪子", "エンジニア"],
|
||||
["青, 猫ちゃん", "サーバー管理者"]
|
||||
];
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res, $expect, "セル内にカンマを含むパーシングに失敗");
|
||||
});
|
||||
});
|
||||
|
||||
$test->it('セル内にカンマを含むCSVをパーシングするはず', function ($test): void {
|
||||
$str = "\"守矢, 諏訪子\",エンジニア\n\"青, 猫ちゃん\",サーバー管理者";
|
||||
|
||||
$tmpFile = tempnam(sys_get_temp_dir(), 'csv_quoted_comma_test');
|
||||
file_put_contents($tmpFile, $str);
|
||||
|
||||
$csv = new Csv($tmpFile);
|
||||
$res = $csv->parse(\Site\Lib\delimiter::COMMA);
|
||||
|
||||
unlink($tmpFile);
|
||||
|
||||
$expect = [
|
||||
["守矢, 諏訪子", "エンジニア"],
|
||||
["青, 猫ちゃん", "サーバー管理者"]
|
||||
];
|
||||
|
||||
$test->assertNotNull($res);
|
||||
$test->assertEquals($res, $expect, "セル内にカンマを含むパーシングに失敗");
|
||||
});
|
||||
});
|
||||
$test->printSummary();
|
||||
}
|
||||
@@ -6,87 +6,89 @@ require_once __DIR__.'/../../../autoload.php';
|
||||
use Site\Lib\Tester;
|
||||
use Site\Lib\Curl;
|
||||
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
if (CURL_ENABLED) {
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
|
||||
$test->describe('Curlの基本的な機能性', function($test): void {
|
||||
$test->it('URLで使って新しいインスタンスを作成するはず', function($test): void {
|
||||
$curl = new Curl('https://076.moe');
|
||||
$test->assertNotNull($curl);
|
||||
$test->describe('Curlの基本的な機能性', function($test): void {
|
||||
$test->it('URLで使って新しいインスタンスを作成するはず', function($test): void {
|
||||
$curl = new Curl('https://076.moe');
|
||||
$test->assertNotNull($curl);
|
||||
});
|
||||
|
||||
$test->it('メソッドでURLを設定出来るはす', function($test): void {
|
||||
$curl = new Curl();
|
||||
$curl->setUrl('https://076.moe');
|
||||
$test->assertNotNull($curl);
|
||||
});
|
||||
|
||||
$test->it('ヘッダー文字を作成出来るはず', function($test): void {
|
||||
$curl = new Curl('https://076.moe');
|
||||
$curl->setHeaders([
|
||||
'Accept' => 'application/json',
|
||||
'User-Agent' => 'LoliTest/1.0'
|
||||
]);
|
||||
|
||||
$reflectionClass = new \ReflectionClass($curl);
|
||||
$method = $reflectionClass->getMethod('buildHeaderString');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$headerString = $method->invoke($curl);
|
||||
$test->assertStringContains('Accept: application/json', $headerString);
|
||||
$test->assertStringContains('User-Agent: LoliTest/1.0', $headerString);
|
||||
});
|
||||
|
||||
$test->skip('移転を対応するはず', '作成中・・・');
|
||||
|
||||
$test->it('メソッドチェーニングを対応するはず', function($test): void {
|
||||
$curl = new Curl();
|
||||
$result = $curl->setUrl('https://076.moe')
|
||||
->setMethod('GET')
|
||||
->setTimeout(30);
|
||||
|
||||
$test->assertSame($curl, $result);
|
||||
});
|
||||
});
|
||||
|
||||
$test->it('メソッドでURLを設定出来るはす', function($test): void {
|
||||
$curl = new Curl();
|
||||
$curl->setUrl('https://076.moe');
|
||||
$test->assertNotNull($curl);
|
||||
$test->describe('Curl HTTP リクエスト', function($test): void {
|
||||
$networkAvailable = true;
|
||||
|
||||
if (!$networkAvailable) {
|
||||
$test->skip('076.moeでGETリクエストの確認', 'ネットワークが無効です。');
|
||||
$test->skip('postman-echo.comでPOSTリクエストの確認', 'ネットワークが無効です。');
|
||||
return;
|
||||
}
|
||||
|
||||
$test->it('076.moeでGETリクエストの確認', function($test): void {
|
||||
$curl = new Curl('https://076.moe');
|
||||
$result = $curl->execute();
|
||||
|
||||
$test->assertTrue($result);
|
||||
$test->assertEquals(200, $curl->getResponseCode());
|
||||
$test->assertNotNull($curl->getResponseBody());
|
||||
$test->assertStringContains('<html', $curl->getResponseBody());
|
||||
});
|
||||
|
||||
$test->it('postman-echo.comでPOSTリクエストの確認', function($test): void {
|
||||
$curl = new Curl();
|
||||
$curl->setUrl('https://postman-echo.com/post')
|
||||
->setMethod('POST')
|
||||
->setPostFields([
|
||||
'name' => '山田太郎',
|
||||
'email' => 't.yamada@example.com'
|
||||
]);
|
||||
|
||||
$result = $curl->execute();
|
||||
$test->assertTrue($result);
|
||||
$test->assertEquals(200, $curl->getResponseCode());
|
||||
|
||||
$responseBody = $curl->getResponseBody();
|
||||
$test->assertStringContains('山田太郎', $responseBody);
|
||||
$test->assertStringContains('t.yamada@example.com', $responseBody);
|
||||
});
|
||||
});
|
||||
|
||||
$test->it('ヘッダー文字を作成出来るはず', function($test): void {
|
||||
$curl = new Curl('https://076.moe');
|
||||
$curl->setHeaders([
|
||||
'Accept' => 'application/json',
|
||||
'User-Agent' => 'LoliTest/1.0'
|
||||
]);
|
||||
|
||||
$reflectionClass = new \ReflectionClass($curl);
|
||||
$method = $reflectionClass->getMethod('buildHeaderString');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$headerString = $method->invoke($curl);
|
||||
$test->assertStringContains('Accept: application/json', $headerString);
|
||||
$test->assertStringContains('User-Agent: LoliTest/1.0', $headerString);
|
||||
});
|
||||
|
||||
$test->skip('移転を対応するはず', '作成中・・・');
|
||||
|
||||
$test->it('メソッドチェーニングを対応するはず', function($test): void {
|
||||
$curl = new Curl();
|
||||
$result = $curl->setUrl('https://076.moe')
|
||||
->setMethod('GET')
|
||||
->setTimeout(30);
|
||||
|
||||
$test->assertSame($curl, $result);
|
||||
});
|
||||
});
|
||||
|
||||
$test->describe('Curl HTTP リクエスト', function($test): void {
|
||||
$networkAvailable = true;
|
||||
|
||||
if (!$networkAvailable) {
|
||||
$test->skip('076.moeでGETリクエストの確認', 'ネットワークが無効です。');
|
||||
$test->skip('postman-echo.comでPOSTリクエストの確認', 'ネットワークが無効です。');
|
||||
return;
|
||||
}
|
||||
|
||||
$test->it('076.moeでGETリクエストの確認', function($test): void {
|
||||
$curl = new Curl('https://076.moe');
|
||||
$result = $curl->execute();
|
||||
|
||||
$test->assertTrue($result);
|
||||
$test->assertEquals(200, $curl->getResponseCode());
|
||||
$test->assertNotNull($curl->getResponseBody());
|
||||
$test->assertStringContains('<html', $curl->getResponseBody());
|
||||
});
|
||||
|
||||
$test->it('postman-echo.comでPOSTリクエストの確認', function($test): void {
|
||||
$curl = new Curl();
|
||||
$curl->setUrl('https://postman-echo.com/post')
|
||||
->setMethod('POST')
|
||||
->setPostFields([
|
||||
'name' => '山田太郎',
|
||||
'email' => 't.yamada@example.com'
|
||||
]);
|
||||
|
||||
$result = $curl->execute();
|
||||
$test->assertTrue($result);
|
||||
$test->assertEquals(200, $curl->getResponseCode());
|
||||
|
||||
$responseBody = $curl->getResponseBody();
|
||||
$test->assertStringContains('山田太郎', $responseBody);
|
||||
$test->assertStringContains('t.yamada@example.com', $responseBody);
|
||||
});
|
||||
});
|
||||
|
||||
$test->printSummary();
|
||||
$test->printSummary();
|
||||
}
|
||||
@@ -6,61 +6,63 @@ require_once __DIR__.'/../../../autoload.php';
|
||||
use Site\Lib\Tester;
|
||||
use Site\Lib\Mysql;
|
||||
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
if (MYSQL_ENABLED) {
|
||||
$test = new Tester([
|
||||
'colorOutput' => true,
|
||||
'verboseOutput' => true
|
||||
]);
|
||||
|
||||
$test->describe('パケットのデバッグ', function($test): void {
|
||||
try {
|
||||
$db = new Mysql();
|
||||
$test->describe('パケットのデバッグ', function($test): void {
|
||||
try {
|
||||
$db = new Mysql();
|
||||
|
||||
$db->setDebug(true);
|
||||
$db->connect();
|
||||
$db->setDebug(true);
|
||||
$db->connect();
|
||||
|
||||
$result = $db->query('SELECT * FROM user WHERE id = 1');
|
||||
$result = $db->query('SELECT * FROM user WHERE id = 1');
|
||||
|
||||
foreach ($result['rows'] as $row) {
|
||||
echo "ユーザー名: ".$row['nickname']."\n";
|
||||
foreach ($result['rows'] as $row) {
|
||||
echo "ユーザー名: ".$row['nickname']."\n";
|
||||
}
|
||||
|
||||
$db->savePacketLogToFile('mysql_log.txt');
|
||||
$db->close();
|
||||
} catch (\Exception $e) {
|
||||
echo 'エラー: '.$e->getMessage()."\n";
|
||||
}
|
||||
});
|
||||
|
||||
$db->savePacketLogToFile('mysql_log.txt');
|
||||
$db->close();
|
||||
} catch (\Exception $e) {
|
||||
echo 'エラー: '.$e->getMessage()."\n";
|
||||
}
|
||||
});
|
||||
$test->describe('プリペアドステートメント', function($test): void {
|
||||
try {
|
||||
$db = new Mysql();
|
||||
$db->connect();
|
||||
|
||||
$test->describe('プリペアドステートメント', function($test): void {
|
||||
try {
|
||||
$db = new Mysql();
|
||||
$db->connect();
|
||||
// データの入り
|
||||
$stmt = $db->prepare('INSERT INTO users (name, age) VALUES (?, ?)');
|
||||
$test->assertTrue($stmt);
|
||||
|
||||
// データの入り
|
||||
$stmt = $db->prepare('INSERT INTO users (name, age) VALUES (?, ?)');
|
||||
$test->assertTrue($stmt);
|
||||
$db->execute($stmt, ['山田太郎', 25]);
|
||||
// TODO: assert
|
||||
|
||||
$db->execute($stmt, ['山田太郎', 25]);
|
||||
// TODO: assert
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
// データの受け取り
|
||||
$stmt = $db->prepare('SELECT * FROM users WHERE age > ?');
|
||||
$test->assertTrue($stmt);
|
||||
|
||||
// データの受け取り
|
||||
$stmt = $db->prepare('SELECT * FROM users WHERE age > ?');
|
||||
$test->assertTrue($stmt);
|
||||
$res = $db->execute($stmt, [20]);
|
||||
// TODO: assert
|
||||
print_r($res);
|
||||
|
||||
$res = $db->execute($stmt, [20]);
|
||||
// TODO: assert
|
||||
print_r($res);
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
|
||||
$close = $db->demolish($stmt);
|
||||
$this->assertTrue($close);
|
||||
$db->close();
|
||||
} catch (\Exception $e) {
|
||||
echo 'エラー: '.$e->getMessage()."\n";
|
||||
}
|
||||
});
|
||||
|
||||
$db->close();
|
||||
} catch (\Exception $e) {
|
||||
echo 'エラー: '.$e->getMessage()."\n";
|
||||
}
|
||||
});
|
||||
|
||||
$test->printSummary();
|
||||
$test->printSummary();
|
||||
}
|
||||
Reference in New Issue
Block a user