89 lines
3 KiB
PHP
89 lines
3 KiB
PHP
<?php declare(strict_types=1);
|
|
class AdminPageTest extends ShimmiePHPUnitTestCase
|
|
{
|
|
public function testAuth()
|
|
{
|
|
send_event(new UserLoginEvent(User::by_name(self::$anon_name)));
|
|
$page = $this->get_page('admin');
|
|
$this->assertEquals(403, $page->code);
|
|
$this->assertEquals("Permission Denied", $page->title);
|
|
|
|
send_event(new UserLoginEvent(User::by_name(self::$user_name)));
|
|
$page = $this->get_page('admin');
|
|
$this->assertEquals(403, $page->code);
|
|
$this->assertEquals("Permission Denied", $page->title);
|
|
|
|
send_event(new UserLoginEvent(User::by_name(self::$admin_name)));
|
|
$page = $this->get_page('admin');
|
|
$this->assertEquals(200, $page->code);
|
|
$this->assertEquals("Admin Tools", $page->title);
|
|
}
|
|
|
|
public function testLowercaseAndSetCase()
|
|
{
|
|
// Create a problem
|
|
$ts = time(); // we need a tag that hasn't been used before
|
|
send_event(new UserLoginEvent(User::by_name(self::$admin_name)));
|
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "TeStCase$ts");
|
|
|
|
// Validate problem
|
|
$page = $this->get_page("post/view/$image_id_1");
|
|
$this->assertEquals("Image $image_id_1: TeStCase$ts", $page->title);
|
|
|
|
// Fix
|
|
send_event(new AdminActionEvent('lowercase_all_tags'));
|
|
|
|
// Validate fix
|
|
$this->get_page("post/view/$image_id_1");
|
|
$this->assert_title("Image $image_id_1: testcase$ts");
|
|
|
|
// Change
|
|
$_POST["tag"] = "TestCase$ts";
|
|
send_event(new AdminActionEvent('set_tag_case'));
|
|
|
|
// Validate change
|
|
$this->get_page("post/view/$image_id_1");
|
|
$this->assert_title("Image $image_id_1: TestCase$ts");
|
|
}
|
|
|
|
# FIXME: make sure the admin tools actually work
|
|
public function testRecount()
|
|
{
|
|
global $database;
|
|
|
|
// Create a problem
|
|
$ts = time(); // we need a tag that hasn't been used before
|
|
send_event(new UserLoginEvent(User::by_name(self::$admin_name)));
|
|
$database->execute(
|
|
"INSERT INTO tags(tag, count) VALUES(:tag, :count)",
|
|
["tag"=>"tes$ts", "count"=>42]
|
|
);
|
|
|
|
// Fix
|
|
send_event(new AdminActionEvent('recount_tag_use'));
|
|
|
|
// Validate fix
|
|
$this->assertEquals(
|
|
0,
|
|
$database->get_one(
|
|
"SELECT count FROM tags WHERE tag = :tag",
|
|
["tag"=>"tes$ts"]
|
|
)
|
|
);
|
|
}
|
|
|
|
public function testCommands()
|
|
{
|
|
send_event(new UserLoginEvent(User::by_name(self::$admin_name)));
|
|
ob_start();
|
|
send_event(new CommandEvent(["index.php", "help"]));
|
|
send_event(new CommandEvent(["index.php", "get-page", "post/list"]));
|
|
send_event(new CommandEvent(["index.php", "post-page", "post/list", "foo=bar"]));
|
|
send_event(new CommandEvent(["index.php", "get-token"]));
|
|
send_event(new CommandEvent(["index.php", "regen-thumb", "42"]));
|
|
ob_end_clean();
|
|
|
|
// don't crash
|
|
$this->assertTrue(true);
|
|
}
|
|
}
|