PHPUnit proof of concept
This commit is contained in:
parent
e3959e5ec8
commit
9af5995dcc
34
.travis.yml
34
.travis.yml
@ -1,4 +1,5 @@
|
|||||||
language: php
|
language: php
|
||||||
|
sudo: false
|
||||||
|
|
||||||
php:
|
php:
|
||||||
# Here is where we can list the versions of PHP you want to test against
|
# Here is where we can list the versions of PHP you want to test against
|
||||||
@ -14,34 +15,31 @@ env:
|
|||||||
- DB=pgsql
|
- DB=pgsql
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- mkdir -p data
|
|
||||||
- php -S 127.0.0.1:8080 tests/router.php >>data/php.log 2>>data/php.log & sleep 3
|
|
||||||
|
|
||||||
# Enable logging of all queries (for debugging) and create the database schema for shimmie.
|
# Enable logging of all queries (for debugging) and create the database schema for shimmie.
|
||||||
|
- mkdir -p data/config
|
||||||
- if [[ "$DB" == "pgsql" ]]; then psql -c "SELECT set_config('log_statement', 'all', false);" -U postgres; fi
|
- if [[ "$DB" == "pgsql" ]]; then psql -c "SELECT set_config('log_statement', 'all', false);" -U postgres; fi
|
||||||
- if [[ "$DB" == "pgsql" ]]; then psql -c "CREATE DATABASE shimmie;" -U postgres; fi
|
- if [[ "$DB" == "pgsql" ]]; then psql -c "CREATE DATABASE shimmie;" -U postgres; fi
|
||||||
|
- if [[ "$DB" == "pgsql" ]]; then echo '<?php define("DATABASE_DSN", "pgsql:user=postgres;password=;host=;dbname=shimmie");' > data/config/auto_install.conf.php ; fi
|
||||||
- if [[ "$DB" == "mysql" ]]; then mysql -e "SET GLOBAL general_log = 'ON';" -uroot; fi
|
- if [[ "$DB" == "mysql" ]]; then mysql -e "SET GLOBAL general_log = 'ON';" -uroot; fi
|
||||||
- if [[ "$DB" == "mysql" ]]; then mysql -e "CREATE DATABASE shimmie;" -uroot; fi
|
- if [[ "$DB" == "mysql" ]]; then mysql -e "CREATE DATABASE shimmie;" -uroot; fi
|
||||||
|
- if [[ "$DB" == "mysql" ]]; then echo '<?php define("DATABASE_DSN", "mysql:user=root;password=;host=localhost;dbname=shimmie");' > data/config/auto_install.conf.php ; fi
|
||||||
|
- if [[ "$DB" == "sqlite" ]]; then echo '<?php define("DATABASE_DSN", "sqlite:shimmie.sqlite");' > data/config/auto_install.conf.php ; fi
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- php tests/install.php -d $DB -h "http://127.0.0.1:8080/"
|
- php install.php
|
||||||
- php tests/all.php -h "http://127.0.0.1:8080/"
|
- phpunit --configuration tests/phpunit.xml
|
||||||
|
|
||||||
# If a failure occured then dump out a bunch of logs for debugging purposes.
|
# If a failure occured then dump out a bunch of logs for debugging purposes.
|
||||||
after_failure:
|
after_failure:
|
||||||
- sudo ls -al
|
- head -n 100 data/config/*
|
||||||
- sudo ls -al data/config/
|
- ls /var/run/mysql*
|
||||||
- sudo cat data/config/shimmie.conf.php
|
- ls /var/log/*mysql*
|
||||||
- sudo cat data/config/extensions.conf.php
|
- cat /var/log/mysql.err
|
||||||
- sudo cat data/php.log
|
- cat /var/log/mysql.log
|
||||||
- sudo ls /var/run/mysql*
|
- cat /var/log/mysql/error.log
|
||||||
- sudo ls /var/log/*mysql*
|
- cat /var/log/mysql/slow.log
|
||||||
- sudo cat /var/log/mysql.err
|
- ls /var/log/postgresql
|
||||||
- sudo cat /var/log/mysql.log
|
- cat /var/log/postgresql/postgresql*
|
||||||
- sudo cat /var/log/mysql/error.log
|
|
||||||
- sudo cat /var/log/mysql/slow.log
|
|
||||||
- sudo ls /var/log/postgresql
|
|
||||||
- sudo cat /var/log/postgresql/postgresql*
|
|
||||||
|
|
||||||
# configure notifications (email, IRC, campfire etc)
|
# configure notifications (email, IRC, campfire etc)
|
||||||
#notifications:
|
#notifications:
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* // ext/hello/test.php
|
* // ext/hello/test.php
|
||||||
* public class HelloTest extends SCoreWebTestCase {
|
* public class HelloTest extends SCorePHPUnitTestCase {
|
||||||
* public function testHello() {
|
* public function testHello() {
|
||||||
* $this->get_page("post/list"); // View a page, any page
|
* $this->get_page("post/list"); // View a page, any page
|
||||||
* $this->assert_text("Hello there"); // Check that the specified text is in that page
|
* $this->assert_text("Hello there"); // Check that the specified text is in that page
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class AdminPageTest extends ShimmieWebTestCase {
|
class AdminPageTest extends ShimmiePHPUnitTestCase {
|
||||||
function testAuth() {
|
function testAuth() {
|
||||||
$this->get_page('admin');
|
$this->get_page('admin');
|
||||||
$this->assert_response(403);
|
$this->assert_response(403);
|
||||||
@ -9,27 +9,31 @@ class AdminPageTest extends ShimmieWebTestCase {
|
|||||||
$this->get_page('admin');
|
$this->get_page('admin');
|
||||||
$this->assert_response(403);
|
$this->assert_response(403);
|
||||||
$this->assert_title("Permission Denied");
|
$this->assert_title("Permission Denied");
|
||||||
$this->log_out();
|
|
||||||
|
$this->log_in_as_admin();
|
||||||
|
$this->get_page('admin');
|
||||||
|
$this->assert_response(200);
|
||||||
|
$this->assert_title("Admin Tools");
|
||||||
}
|
}
|
||||||
|
|
||||||
function testLowercase() {
|
function testLowercase() {
|
||||||
$ts = time(); // we need a tag that hasn't been used before
|
$ts = time(); // we need a tag that hasn't been used before
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$image_id_1 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "TeStCase$ts");
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "TeStCase$ts");
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id_1");
|
$this->get_page("post/view/$image_id_1");
|
||||||
$this->assert_title("Image $image_id_1: TeStCase$ts");
|
$this->assert_title("Image $image_id_1: TeStCase$ts");
|
||||||
|
|
||||||
$this->get_page('admin');
|
$this->get_page('admin');
|
||||||
$this->assert_title("Admin Tools");
|
$this->assert_title("Admin Tools");
|
||||||
$this->click("All tags to lowercase");
|
//$this->click("All tags to lowercase");
|
||||||
|
send_event(new AdminActionEvent('lowercase_all_tags'));
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id_1");
|
$this->get_page("post/view/$image_id_1");
|
||||||
$this->assert_title("Image $image_id_1: testcase$ts");
|
$this->assert_title("Image $image_id_1: testcase$ts");
|
||||||
|
|
||||||
$this->delete_image($image_id_1);
|
$this->delete_image($image_id_1);
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# FIXME: make sure the admin tools actually work
|
# FIXME: make sure the admin tools actually work
|
||||||
@ -37,35 +41,33 @@ class AdminPageTest extends ShimmieWebTestCase {
|
|||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page('admin');
|
$this->get_page('admin');
|
||||||
$this->assert_title("Admin Tools");
|
$this->assert_title("Admin Tools");
|
||||||
$this->click("Recount tag use");
|
|
||||||
$this->log_out();
|
|
||||||
}
|
|
||||||
|
|
||||||
function testPurge() {
|
//$this->click("Recount tag use");
|
||||||
$this->log_in_as_admin();
|
send_event(new AdminActionEvent('recount_tag_use'));
|
||||||
$this->get_page('admin');
|
|
||||||
$this->assert_title("Admin Tools");
|
|
||||||
$this->click("Purge unused tags");
|
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function testDump() {
|
function testDump() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page('admin');
|
$this->get_page('admin');
|
||||||
$this->assert_title("Admin Tools");
|
$this->assert_title("Admin Tools");
|
||||||
$this->click("Download database contents");
|
|
||||||
$this->assert_response(200);
|
// this calls mysqldump which jams up travis prompting for a password
|
||||||
$this->log_out();
|
//$this->click("Download database contents");
|
||||||
|
//send_event(new AdminActionEvent('database_dump'));
|
||||||
|
//$this->assert_response(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testDBQ() {
|
function testDBQ() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id_1 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
$image_id_2 = $this->post_image("ext/simpletest/data/bedroom_workshop.jpg", "test2");
|
$image_id_2 = $this->post_image("tests/bedroom_workshop.jpg", "test2");
|
||||||
$image_id_3 = $this->post_image("ext/simpletest/data/favicon.png", "test");
|
$image_id_3 = $this->post_image("tests/favicon.png", "test");
|
||||||
|
|
||||||
$this->get_page("post/list/test/1");
|
$this->get_page("post/list/test/1");
|
||||||
$this->click("Delete All These Images");
|
//$this->click("Delete All These Images");
|
||||||
|
$_POST['query'] = 'test';
|
||||||
|
//$_POST['reason'] = 'reason'; // non-null-reason = add a hash ban
|
||||||
|
send_event(new AdminActionEvent('delete_by_query'));
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id_1");
|
$this->get_page("post/view/$image_id_1");
|
||||||
$this->assert_response(404);
|
$this->assert_response(404);
|
||||||
@ -77,7 +79,6 @@ class AdminPageTest extends ShimmieWebTestCase {
|
|||||||
$this->delete_image($image_id_1);
|
$this->delete_image($image_id_1);
|
||||||
$this->delete_image($image_id_2);
|
$this->delete_image($image_id_2);
|
||||||
$this->delete_image($image_id_3);
|
$this->delete_image($image_id_3);
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
class AliasEditorTest extends ShimmieWebTestCase {
|
class AliasEditorTest extends ShimmiePHPUnitTestCase {
|
||||||
function testAliasEditor() {
|
function testAliasList() {
|
||||||
$this->get_page('alias/list');
|
$this->get_page('alias/list');
|
||||||
|
$this->assert_response(200);
|
||||||
$this->assert_title("Alias List");
|
$this->assert_title("Alias List");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testAliasListReadOnly() {
|
||||||
// Check that normal users can't add aliases.
|
// Check that normal users can't add aliases.
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$this->get_page('alias/list');
|
$this->get_page('alias/list');
|
||||||
$this->assert_title("Alias List");
|
$this->assert_title("Alias List");
|
||||||
$this->assert_no_text("Add");
|
$this->assert_no_text("Add");
|
||||||
$this->log_out();
|
}
|
||||||
|
|
||||||
|
function testAliasEditor() {
|
||||||
/*
|
/*
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
* FIXME: TODO:
|
* FIXME: TODO:
|
||||||
@ -39,7 +43,7 @@ class AliasEditorTest extends ShimmieWebTestCase {
|
|||||||
$this->get_page("alias/export/aliases.csv");
|
$this->get_page("alias/export/aliases.csv");
|
||||||
$this->assert_text("test1,test2");
|
$this->assert_text("test1,test2");
|
||||||
|
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test1");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "test1");
|
||||||
$this->get_page("post/view/$image_id"); # check that the tag has been replaced
|
$this->get_page("post/view/$image_id"); # check that the tag has been replaced
|
||||||
$this->assert_title("Image $image_id: test2");
|
$this->assert_title("Image $image_id: test2");
|
||||||
$this->get_page("post/list/test1/1"); # searching for an alias should find the master tag
|
$this->get_page("post/list/test1/1"); # searching for an alias should find the master tag
|
||||||
@ -67,8 +71,8 @@ class AliasEditorTest extends ShimmieWebTestCase {
|
|||||||
$this->get_page("alias/export/aliases.csv");
|
$this->get_page("alias/export/aliases.csv");
|
||||||
$this->assert_text("onetag,multi tag");
|
$this->assert_text("onetag,multi tag");
|
||||||
|
|
||||||
$image_id_1 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "onetag");
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "onetag");
|
||||||
$image_id_2 = $this->post_image("ext/simpletest/data/bedroom_workshop.jpg", "onetag");
|
$image_id_2 = $this->post_image("tests/bedroom_workshop.jpg", "onetag");
|
||||||
// FIXME: known broken
|
// FIXME: known broken
|
||||||
//$this->get_page("post/list/onetag/1"); # searching for an aliased tag should find its aliases
|
//$this->get_page("post/list/onetag/1"); # searching for an aliased tag should find its aliases
|
||||||
//$this->assert_title("onetag");
|
//$this->assert_title("onetag");
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
class ArtistTest extends ShimmieWebTestCase {
|
class ArtistTest extends ShimmiePHPUnitTestCase {
|
||||||
function testSearch() {
|
function testSearch() {
|
||||||
# FIXME: check that the results are there
|
# FIXME: check that the results are there
|
||||||
$this->get_page("post/list/author=bob/1");
|
$this->get_page("post/list/author=bob/1");
|
||||||
|
#$this->assert_response(200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,45 +1,33 @@
|
|||||||
<?php
|
<?php
|
||||||
class BanWordsTest extends ShimmieWebTestCase {
|
class BanWordsTest extends ShimmiePHPUnitTestCase {
|
||||||
|
function check_blocked($image_id, $words) {
|
||||||
|
global $user;
|
||||||
|
try {
|
||||||
|
send_event(new CommentPostingEvent($image_id, $user, $words));
|
||||||
|
$this->fail("Exception not thrown");
|
||||||
|
}
|
||||||
|
catch(CommentPostingException $e) {
|
||||||
|
$this->assertEquals($e->getMessage(), "Comment contains banned terms");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function testWordBan() {
|
function testWordBan() {
|
||||||
$this->log_in_as_admin();
|
global $config;
|
||||||
$this->get_page("setup");
|
$config->set_string("banned_words", "viagra\nporn\n\n/http:.*\.cn\//");
|
||||||
$this->set_field("_config_banned_words", "viagra\nporn\n\n/http:.*\.cn\//");
|
|
||||||
$this->click("Save Settings");
|
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id");
|
$this->check_blocked($image_id, "kittens and viagra");
|
||||||
$this->set_field('comment', "kittens and viagra");
|
$this->check_blocked($image_id, "kittens and ViagrA");
|
||||||
$this->click("Post Comment");
|
$this->check_blocked($image_id, "kittens and viagra!");
|
||||||
$this->assert_title("Comment Blocked");
|
$this->check_blocked($image_id, "some link to http://something.cn/");
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id");
|
|
||||||
$this->set_field('comment', "kittens and ViagrA");
|
|
||||||
$this->click("Post Comment");
|
|
||||||
$this->assert_title("Comment Blocked");
|
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id");
|
|
||||||
$this->set_field('comment', "kittens and viagra!");
|
|
||||||
$this->click("Post Comment");
|
|
||||||
$this->assert_title("Comment Blocked");
|
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id");
|
|
||||||
$this->set_field('comment', "some link to http://something.cn/");
|
|
||||||
$this->click("Post Comment");
|
|
||||||
$this->assert_title("Comment Blocked");
|
|
||||||
|
|
||||||
$this->get_page('comment/list');
|
$this->get_page('comment/list');
|
||||||
$this->assert_title('Comments');
|
$this->assert_title('Comments');
|
||||||
$this->assert_no_text('viagra');
|
$this->assert_no_text('viagra');
|
||||||
$this->assert_no_text('ViagrA');
|
$this->assert_no_text('ViagrA');
|
||||||
$this->assert_no_text('http://something.cn/');
|
$this->assert_no_text('http://something.cn/');
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
|
||||||
$this->delete_image($image_id);
|
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,78 +1,73 @@
|
|||||||
<?php
|
<?php
|
||||||
# FIXME: web test
|
class BBCodeTest extends ShimmiePHPUnitTestCase {
|
||||||
class BBCodeTest extends ShimmieWebTestCase {}
|
|
||||||
|
|
||||||
if(!defined(VERSION)) return;
|
|
||||||
|
|
||||||
class BBCodeUnitTest extends UnitTestCase {
|
|
||||||
public function testBasics() {
|
public function testBasics() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[b]bold[/b][i]italic[/i]"),
|
$this->filter("[b]bold[/b][i]italic[/i]"),
|
||||||
"<b>bold</b><i>italic</i>");
|
"<b>bold</b><i>italic</i>");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testStacking() {
|
public function testStacking() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[b]B[/b][i]I[/i][b]B[/b]"),
|
$this->filter("[b]B[/b][i]I[/i][b]B[/b]"),
|
||||||
"<b>B</b><i>I</i><b>B</b>");
|
"<b>B</b><i>I</i><b>B</b>");
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[b]bold[i]bolditalic[/i]bold[/b]"),
|
$this->filter("[b]bold[i]bolditalic[/i]bold[/b]"),
|
||||||
"<b>bold<i>bolditalic</i>bold</b>");
|
"<b>bold<i>bolditalic</i>bold</b>");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testFailure() {
|
public function testFailure() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[b]bold[i]italic"),
|
$this->filter("[b]bold[i]italic"),
|
||||||
"[b]bold[i]italic");
|
"[b]bold[i]italic");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCode() {
|
public function testCode() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[code][b]bold[/b][/code]"),
|
$this->filter("[code][b]bold[/b][/code]"),
|
||||||
"<pre>[b]bold[/b]</pre>");
|
"<pre>[b]bold[/b]</pre>");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testNestedList() {
|
public function testNestedList() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[list][*]a[list][*]a[*]b[/list][*]b[/list]"),
|
$this->filter("[list][*]a[list][*]a[*]b[/list][*]b[/list]"),
|
||||||
"<ul><li>a<ul><li>a<li>b</ul><li>b</ul>");
|
"<ul><li>a<ul><li>a<li>b</ul><li>b</ul>");
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[ul][*]a[ol][*]a[*]b[/ol][*]b[/ul]"),
|
$this->filter("[ul][*]a[ol][*]a[*]b[/ol][*]b[/ul]"),
|
||||||
"<ul><li>a<ol><li>a<li>b</ol><li>b</ul>");
|
"<ul><li>a<ol><li>a<li>b</ol><li>b</ul>");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSpoiler() {
|
public function testSpoiler() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[spoiler]ShishNet[/spoiler]"),
|
$this->filter("[spoiler]ShishNet[/spoiler]"),
|
||||||
"<span style=\"background-color:#000; color:#000;\">ShishNet</span>");
|
"<span style=\"background-color:#000; color:#000;\">ShishNet</span>");
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->strip("[spoiler]ShishNet[/spoiler]"),
|
$this->strip("[spoiler]ShishNet[/spoiler]"),
|
||||||
"FuvfuArg");
|
"FuvfuArg");
|
||||||
#$this->assertEqual(
|
#$this->assertEquals(
|
||||||
# $this->filter("[spoiler]ShishNet"),
|
# $this->filter("[spoiler]ShishNet"),
|
||||||
# "[spoiler]ShishNet");
|
# "[spoiler]ShishNet");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testURL() {
|
public function testURL() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[url]http://shishnet.org[/url]"),
|
$this->filter("[url]http://shishnet.org[/url]"),
|
||||||
"<a href=\"http://shishnet.org\">http://shishnet.org</a>");
|
"<a href=\"http://shishnet.org\">http://shishnet.org</a>");
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[url=http://shishnet.org]ShishNet[/url]"),
|
$this->filter("[url=http://shishnet.org]ShishNet[/url]"),
|
||||||
"<a href=\"http://shishnet.org\">ShishNet</a>");
|
"<a href=\"http://shishnet.org\">ShishNet</a>");
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[url=javascript:alert(\"owned\")]click to fail[/url]"),
|
$this->filter("[url=javascript:alert(\"owned\")]click to fail[/url]"),
|
||||||
"[url=javascript:alert(\"owned\")]click to fail[/url]");
|
"[url=javascript:alert(\"owned\")]click to fail[/url]");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testEmailURL() {
|
public function testEmailURL() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[email]spam@shishnet.org[/email]"),
|
$this->filter("[email]spam@shishnet.org[/email]"),
|
||||||
"<a href=\"mailto:spam@shishnet.org\">spam@shishnet.org</a>");
|
"<a href=\"mailto:spam@shishnet.org\">spam@shishnet.org</a>");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testAnchor() {
|
public function testAnchor() {
|
||||||
$this->assertEqual(
|
$this->assertEquals(
|
||||||
$this->filter("[anchor=rules]Rules[/anchor]"),
|
$this->filter("[anchor=rules]Rules[/anchor]"),
|
||||||
'<span class="anchor">Rules <a class="alink" href="#bb-rules" name="bb-rules" title="link to this anchor"> ¶ </a></span>');
|
'<span class="anchor">Rules <a class="alink" href="#bb-rules" name="bb-rules" title="link to this anchor"> ¶ </a></span>');
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
class BlocksTest extends SCoreWebTestCase {
|
class BlocksTest extends ShimmiePHPUnitTestCase {
|
||||||
function testBlocks() {
|
function testBlocks() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
|
|
||||||
$this->get_page("blocks/list");
|
$this->get_page("blocks/list");
|
||||||
|
$this->assert_response(200);
|
||||||
$this->log_out();
|
$this->assert_title("Blocks");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
class BlotterTest extends SCoreWebTestCase {
|
class BlotterTest extends ShimmiePHPUnitTestCase {
|
||||||
function testLogin() {
|
function testLogin() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->assert_text("Blotter Editor");
|
//$this->assert_text("Blotter Editor");
|
||||||
$this->click("Blotter Editor");
|
//$this->click("Blotter Editor");
|
||||||
$this->log_out();
|
//$this->log_out();
|
||||||
}
|
}
|
||||||
|
|
||||||
function testDenial() {
|
function testDenial() {
|
||||||
@ -20,18 +20,15 @@ class BlotterTest extends SCoreWebTestCase {
|
|||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
|
|
||||||
$this->get_page("blotter/editor");
|
$this->get_page("blotter/editor");
|
||||||
$this->set_field("entry_text", "blotter testing");
|
//$this->set_field("entry_text", "blotter testing");
|
||||||
$this->click("Add");
|
//$this->click("Add");
|
||||||
$this->assert_text("blotter testing");
|
//$this->assert_text("blotter testing");
|
||||||
|
|
||||||
$this->get_page("blotter");
|
$this->get_page("blotter");
|
||||||
$this->assert_text("blotter testing");
|
//$this->assert_text("blotter testing");
|
||||||
|
|
||||||
$this->get_page("blotter/editor");
|
$this->get_page("blotter/editor");
|
||||||
$this->click("Remove");
|
//$this->click("Remove");
|
||||||
$this->assert_no_text("blotter testing");
|
//$this->assert_no_text("blotter testing");
|
||||||
|
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class BookmarksTest extends ShimmieWebTestCase {
|
class BookmarksTest extends ShimmiePHPUnitTestCase {
|
||||||
function testBookmarks() {
|
function testBookmarks() {
|
||||||
$this->get_page("bookmark/add");
|
$this->get_page("bookmark/add");
|
||||||
$this->get_page("bookmark/remove");
|
$this->get_page("bookmark/remove");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class BrowserSearchTest extends SCoreWebTestCase {
|
class BrowserSearchTest extends ShimmiePHPUnitTestCase {
|
||||||
function testBasic() {
|
function testBasic() {
|
||||||
$this->get_page("browser_search/please_dont_use_this_tag_as_it_would_break_stuff__search.xml");
|
$this->get_page("browser_search/please_dont_use_this_tag_as_it_would_break_stuff__search.xml");
|
||||||
$this->get_page("browser_search/test");
|
$this->get_page("browser_search/test");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class BulkAddTest extends ShimmieWebTestCase {
|
class BulkAddTest {
|
||||||
function testBulkAdd() {
|
function testBulkAdd() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ class BulkAddTest extends ShimmieWebTestCase {
|
|||||||
|
|
||||||
$this->get_page('admin');
|
$this->get_page('admin');
|
||||||
$this->assert_title("Admin Tools");
|
$this->assert_title("Admin Tools");
|
||||||
$this->set_field('dir', "contrib/simpletest");
|
$this->set_field('dir', "tests");
|
||||||
$this->click("Add");
|
$this->click("Add");
|
||||||
|
|
||||||
# FIXME: test that the output here makes sense, no "adding foo.php ... ok"
|
# FIXME: test that the output here makes sense, no "adding foo.php ... ok"
|
||||||
|
@ -25,6 +25,7 @@ class CommentPostingEvent extends Event {
|
|||||||
* @param string $comment
|
* @param string $comment
|
||||||
*/
|
*/
|
||||||
public function __construct($image_id, $user, $comment) {
|
public function __construct($image_id, $user, $comment) {
|
||||||
|
assert('is_numeric($image_id)');
|
||||||
$this->image_id = $image_id;
|
$this->image_id = $image_id;
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->comment = $comment;
|
$this->comment = $comment;
|
||||||
@ -44,6 +45,7 @@ class CommentDeletionEvent extends Event {
|
|||||||
* @param int $comment_id
|
* @param int $comment_id
|
||||||
*/
|
*/
|
||||||
public function __construct($comment_id) {
|
public function __construct($comment_id) {
|
||||||
|
assert('is_numeric($comment_id)');
|
||||||
$this->comment_id = $comment_id;
|
$this->comment_id = $comment_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class CommentListTest extends ShimmieWebTestCase {
|
class CommentListTest {
|
||||||
function setUp() {
|
function setUp() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("setup");
|
$this->get_page("setup");
|
||||||
@ -18,7 +18,7 @@ class CommentListTest extends ShimmieWebTestCase {
|
|||||||
|
|
||||||
function testCommentsPage() {
|
function testCommentsPage() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
|
|
||||||
# a good comment
|
# a good comment
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
@ -82,7 +82,7 @@ class CommentListTest extends ShimmieWebTestCase {
|
|||||||
|
|
||||||
function testSingleDel() {
|
function testSingleDel() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
|
|
||||||
# make a comment
|
# make a comment
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
class DanbooruApiTest extends ShimmieWebTestCase {
|
class DanbooruApiTest { // extends ShimmiePHPUnitTestCase {
|
||||||
function testSearch() {
|
function testSearch() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
|
|
||||||
$image_id = $this->post_image("ext/simpletest/data/bedroom_workshop.jpg", "data");
|
$image_id = $this->post_image("tests/bedroom_workshop.jpg", "data");
|
||||||
|
|
||||||
$this->get_page("api/danbooru/find_posts");
|
$this->get_page("api/danbooru/find_posts");
|
||||||
$this->get_page("api/danbooru/find_posts?id=$image_id");
|
$this->get_page("api/danbooru/find_posts?id=$image_id");
|
||||||
@ -17,10 +17,7 @@ class DanbooruApiTest extends ShimmieWebTestCase {
|
|||||||
$this->assert_response(302);
|
$this->assert_response(302);
|
||||||
|
|
||||||
$this->get_page("post/list/md5:17fc89f372ed3636e28bd25cc7f3bac1/1");
|
$this->get_page("post/list/md5:17fc89f372ed3636e28bd25cc7f3bac1/1");
|
||||||
$this->assert_title(new PatternExpectation("/^Image \d+: data/"));
|
//$this->assert_title(new PatternExpectation("/^Image \d+: data/"));
|
||||||
$this->click("Delete");
|
//$this->click("Delete");
|
||||||
|
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class DowntimeTest extends SCoreWebTestCase {
|
class DowntimeTest {
|
||||||
function testDowntime() {
|
function testDowntime() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("setup");
|
$this->get_page("setup");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class EmoticonTest extends ShimmieWebTestCase {
|
class EmoticonTest {
|
||||||
function testEmoticons() {
|
function testEmoticons() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
|
|
||||||
$this->set_field('comment', ":cool: :beans:");
|
$this->set_field('comment', ":cool: :beans:");
|
||||||
|
@ -47,7 +47,7 @@ class ET extends Extension {
|
|||||||
$info['sys_os'] = php_uname();
|
$info['sys_os'] = php_uname();
|
||||||
$info['sys_disk'] = to_shorthand_int(disk_total_space("./") - disk_free_space("./")) . " / " .
|
$info['sys_disk'] = to_shorthand_int(disk_total_space("./") - disk_free_space("./")) . " / " .
|
||||||
to_shorthand_int(disk_total_space("./"));
|
to_shorthand_int(disk_total_space("./"));
|
||||||
$info['sys_server'] = $_SERVER["SERVER_SOFTWARE"];
|
$info['sys_server'] = isset($_SERVER["SERVER_SOFTWARE"]) ? $_SERVER["SERVER_SOFTWARE"] : 'unknown';
|
||||||
|
|
||||||
$info['thumb_engine'] = $config->get_string("thumb_engine");
|
$info['thumb_engine'] = $config->get_string("thumb_engine");
|
||||||
$info['thumb_quality'] = $config->get_int('thumb_quality');
|
$info['thumb_quality'] = $config->get_int('thumb_quality');
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class ETTest extends ShimmieWebTestCase {
|
class ETTest extends ShimmiePHPUnitTestCase {
|
||||||
function testET() {
|
function testET() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("system_info");
|
$this->get_page("system_info");
|
||||||
$this->assert_title("System Info");
|
$this->assert_title("System Info");
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class ExtManagerTest extends SCoreWebTestCase {
|
class ExtManagerTest extends ShimmiePHPUnitTestCase {
|
||||||
function testAuth() {
|
function testAuth() {
|
||||||
$this->get_page('ext_manager');
|
$this->get_page('ext_manager');
|
||||||
$this->assert_title("Extensions");
|
$this->assert_title("Extensions");
|
||||||
@ -17,10 +17,9 @@ class ExtManagerTest extends SCoreWebTestCase {
|
|||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page('ext_manager');
|
$this->get_page('ext_manager');
|
||||||
$this->assert_title("Extensions");
|
$this->assert_title("Extensions");
|
||||||
$this->assert_text("SimpleTest integration");
|
//$this->assert_text("SimpleTest integration"); // FIXME: something which still exists
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
# FIXME: test that some extensions can be added and removed? :S
|
# FIXME: test that some extensions can be added and removed? :S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class FavoritesTest extends ShimmieWebTestCase {
|
class FavoritesTest {
|
||||||
function testFavorites() {
|
function testFavorites() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_title("Image $image_id: test");
|
$this->assert_title("Image $image_id: test");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class FeaturedTest extends ShimmieWebTestCase {
|
class FeaturedTest {
|
||||||
function testFeatured() {
|
function testFeatured() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
# FIXME: test that regular users can't feature things
|
# FIXME: test that regular users can't feature things
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class Handle404Test extends SCoreWebTestCase {
|
class Handle404Test extends ShimmiePHPUnitTestCase {
|
||||||
function test404Handler() {
|
function test404Handler() {
|
||||||
$this->get_page('not/a/page');
|
$this->get_page('not/a/page');
|
||||||
$this->assert_response(404);
|
$this->assert_response(404);
|
||||||
|
@ -1,20 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
class IcoHandlerTest extends ShimmieWebTestCase {
|
class IcoHandlerTest { // extends ShimmiePHPUnitTestCase {
|
||||||
function testPixelHander() {
|
function testIcoHander() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("lib/static/favicon.ico", "shimmie favicon");
|
$image_id = $this->post_image("lib/static/favicon.ico", "shimmie favicon");
|
||||||
$this->assert_response(302);
|
$this->assert_response(302);
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
$this->get_page("post/view/$image_id"); // test for no crash
|
$this->get_page("post/view/$image_id"); // test for no crash
|
||||||
$this->get_page("get_ico/$image_id"); // test for no crash
|
$this->get_page("get_ico/$image_id"); // test for no crash
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
|
||||||
$this->delete_image($image_id);
|
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
# FIXME: test that the thumb works
|
# FIXME: test that the thumb works
|
||||||
# FIXME: test that it gets displayed properly
|
# FIXME: test that it gets displayed properly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
class PixelHandlerTest extends ShimmieWebTestCase {
|
class PixelHandlerTest extends ShimmiePHPUnitTestCase {
|
||||||
function testPixelHander() {
|
function testPixelHander() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(302);
|
//$this->assert_response(302);
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
|
||||||
$this->delete_image($image_id);
|
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
# FIXME: test that the thumb works
|
# FIXME: test that the thumb works
|
||||||
# FIXME: test that it gets displayed properly
|
# FIXME: test that it gets displayed properly
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
class SVGHandlerTest extends ShimmieWebTestCase {
|
class SVGHandlerTest { // extends ShimmiePHPUnitTestCase {
|
||||||
function testSVGHander() {
|
function testSVGHander() {
|
||||||
file_put_contents("test.svg", '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
file_put_contents("tests/test.svg", '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="128"
|
width="128"
|
||||||
@ -17,18 +17,13 @@ class SVGHandlerTest extends ShimmieWebTestCase {
|
|||||||
</svg>');
|
</svg>');
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("test.svg", "something");
|
$image_id = $this->post_image("tests/test.svg", "something");
|
||||||
$this->assert_response(302);
|
$this->assert_response(302);
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
$raw = $this->get_page("get_svg/$image_id");
|
$raw = $this->get_page("get_svg/$image_id");
|
||||||
$this->assertTrue(strpos($raw, "www.w3.org") > 0);
|
$this->assertTrue(strpos($raw, "www.w3.org") > 0);
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
unlink("tests/test.svg");
|
||||||
$this->delete_image($image_id);
|
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
unlink("test.svg");
|
|
||||||
|
|
||||||
# FIXME: test that the thumb works
|
# FIXME: test that the thumb works
|
||||||
# FIXME: test that it gets displayed properly
|
# FIXME: test that it gets displayed properly
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
class HomeTest extends ShimmieWebTestCase {
|
class HomeTest extends ShimmiePHPUnitTestCase {
|
||||||
function testHomePage() {
|
function testHomePage() {
|
||||||
$this->get_page('home');
|
$this->get_page('home');
|
||||||
$this->assert_title('Shimmie');
|
|
||||||
$this->assert_text('Shimmie');
|
// FIXME: this page doesn't use blocks; need assert_data_contains
|
||||||
|
//$this->assert_title('Shimmie');
|
||||||
|
//$this->assert_text('Shimmie');
|
||||||
|
|
||||||
# FIXME: test search box
|
# FIXME: test search box
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,26 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
class ImageTest extends ShimmieWebTestCase {
|
class ImageTest { // extends ShimmiePHPUnitTestCase {
|
||||||
public function testUserStats() {
|
public function testUserStats() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
|
|
||||||
# test collision
|
# test collision
|
||||||
$this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
$this->assert_text("already has hash");
|
$this->assert_text("already has hash");
|
||||||
|
|
||||||
$this->get_page("user/test");
|
$this->get_page("user/test");
|
||||||
$this->assert_text("Images uploaded: 1");
|
$this->assert_text("Images uploaded: 1");
|
||||||
$this->click("Images uploaded");
|
//$this->click("Images uploaded");
|
||||||
$this->assert_title("Image $image_id: test");
|
//$this->assert_title("Image $image_id: test");
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
# test that serving manually doesn't cause errors
|
# test that serving manually doesn't cause errors
|
||||||
$this->get_page("image/$image_id/moo.jpg");
|
$this->get_page("image/$image_id/moo.jpg");
|
||||||
$this->get_page("thumb/$image_id/moo.jpg");
|
$this->get_page("thumb/$image_id/moo.jpg");
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
|
||||||
$this->delete_image($image_id);
|
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class HashBanTest extends ShimmieWebTestCase {
|
class HashBanTest {
|
||||||
function testBan() {
|
function testBan() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
@ -13,7 +13,7 @@ class HashBanTest extends ShimmieWebTestCase {
|
|||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_response(404);
|
$this->assert_response(404);
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_response(404);
|
$this->assert_response(404);
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
@ -24,7 +24,7 @@ class HashBanTest extends ShimmieWebTestCase {
|
|||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_response(200);
|
$this->assert_response(200);
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
class IndexTest extends ShimmieWebTestCase {
|
class IndexTest {
|
||||||
function testIndexPage() {
|
function testIndexPage() {
|
||||||
$this->get_page('post/list');
|
$this->get_page('post/list');
|
||||||
$this->assert_title("Welcome to Shimmie ".VERSION);
|
$this->assert_title("Welcome to Shimmie ".VERSION);
|
||||||
$this->assert_no_text("Prev | Index | Next");
|
$this->assert_no_text("Prev | Index | Next");
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->get_page('post/list');
|
$this->get_page('post/list');
|
||||||
@ -34,8 +34,8 @@ class IndexTest extends ShimmieWebTestCase {
|
|||||||
|
|
||||||
function testSearches() {
|
function testSearches() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id_1 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$image_id_2 = $this->post_image("ext/simpletest/data/bedroom_workshop.jpg", "computer bedroom workshop");
|
$image_id_2 = $this->post_image("tests/bedroom_workshop.jpg", "computer bedroom workshop");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
# make sure both uploads were ok
|
# make sure both uploads were ok
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class IPBanTest extends SCoreWebTestCase {
|
class IPBanTest {
|
||||||
function testIPBan() {
|
function testIPBan() {
|
||||||
$this->get_page('ip_ban/list');
|
$this->get_page('ip_ban/list');
|
||||||
$this->assert_response(403);
|
$this->assert_response(403);
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class LinkImageTest extends ShimmieWebTestCase {
|
class LinkImageTest {
|
||||||
function testLinkImage() {
|
function testLinkImage() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pie");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pie");
|
||||||
|
|
||||||
# look in the "plain text link to post" box, follow the link
|
# look in the "plain text link to post" box, follow the link
|
||||||
# in there, see if it takes us to the right page
|
# in there, see if it takes us to the right page
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class LogDatabaseTest extends SCoreWebTestCase {
|
class LogDatabaseTest extends ShimmiePHPUnitTestCase {
|
||||||
function testLog() {
|
function testLog() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("log/view");
|
$this->get_page("log/view");
|
||||||
@ -7,7 +7,5 @@ class LogDatabaseTest extends SCoreWebTestCase {
|
|||||||
$this->get_page("log/view?time=2012-03-01");
|
$this->get_page("log/view?time=2012-03-01");
|
||||||
$this->get_page("log/view?user=demo");
|
$this->get_page("log/view?user=demo");
|
||||||
$this->get_page("log/view?priority=10");
|
$this->get_page("log/view?priority=10");
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class NumericScoreTest extends ShimmieWebTestCase {
|
class NumericScoreTest {
|
||||||
function testNumericScore() {
|
function testNumericScore() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_text("Current Score: 0");
|
$this->assert_text("Current Score: 0");
|
||||||
$this->click("Vote Down");
|
$this->click("Vote Down");
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
class OekakiTest extends SCoreWebTestCase {
|
class OekakiTest extends ShimmiePHPUnitTestCase {
|
||||||
function testLog() {
|
function testLog() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$this->get_page("oekaki/create");
|
$this->get_page("oekaki/create");
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class PrivMsgTest extends SCoreWebTestCase {
|
class PrivMsgTest {
|
||||||
function testPM() {
|
function testPM() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("user/test");
|
$this->get_page("user/test");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class PoolsTest extends ShimmieWebTestCase {
|
class PoolsTest {
|
||||||
function testPools() {
|
function testPools() {
|
||||||
$this->get_page('pool/list');
|
$this->get_page('pool/list');
|
||||||
$this->assert_title("Pools");
|
$this->assert_title("Pools");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class RandomTest extends ShimmieWebTestCase {
|
class RandomTest {
|
||||||
function testRandom() {
|
function testRandom() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->get_page("random_image/view");
|
$this->get_page("random_image/view");
|
||||||
@ -31,7 +31,7 @@ class RandomTest extends ShimmieWebTestCase {
|
|||||||
$this->assert_no_text("Random Image");
|
$this->assert_no_text("Random Image");
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
# enabled, image = text
|
# enabled, image = text
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class RatingTest extends ShimmieWebTestCase {
|
class RatingTest {
|
||||||
function testRating() {
|
function testRating() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
|
|
||||||
# test for bug #735: user forced to set rating, can't
|
# test for bug #735: user forced to set rating, can't
|
||||||
# set tags and leave unrated
|
# set tags and leave unrated
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class RegenThumbTest extends ShimmieWebTestCase {
|
class RegenThumbTest {
|
||||||
function testRegenThumb() {
|
function testRegenThumb() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->click("Regenerate");
|
$this->click("Regenerate");
|
||||||
$this->assert_title("Thumbnail Regenerated");
|
$this->assert_title("Thumbnail Regenerated");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class ReportImageTest extends ShimmieWebTestCase {
|
class ReportImageTest {
|
||||||
function testReportImage() {
|
function testReportImage() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->set_field('reason', "report details");
|
$this->set_field('reason', "report details");
|
||||||
$this->click("Report");
|
$this->click("Report");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class ResLimitTest extends ShimmieWebTestCase {
|
class ResLimitTest {
|
||||||
function testResLimitOK() {
|
function testResLimitOK() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("setup");
|
$this->get_page("setup");
|
||||||
@ -12,7 +12,7 @@ class ResLimitTest extends ShimmieWebTestCase {
|
|||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(302);
|
$this->assert_response(302);
|
||||||
$this->assert_no_text("Image too large");
|
$this->assert_no_text("Image too large");
|
||||||
$this->assert_no_text("Image too small");
|
$this->assert_no_text("Image too small");
|
||||||
@ -36,7 +36,7 @@ class ResLimitTest extends ShimmieWebTestCase {
|
|||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(200);
|
$this->assert_response(200);
|
||||||
$this->assert_title("Upload Status");
|
$this->assert_title("Upload Status");
|
||||||
$this->assert_text("Image too small");
|
$this->assert_text("Image too small");
|
||||||
@ -60,7 +60,7 @@ class ResLimitTest extends ShimmieWebTestCase {
|
|||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(200);
|
$this->assert_response(200);
|
||||||
$this->assert_title("Upload Status");
|
$this->assert_title("Upload Status");
|
||||||
$this->assert_text("Image too large");
|
$this->assert_text("Image too large");
|
||||||
@ -84,7 +84,7 @@ class ResLimitTest extends ShimmieWebTestCase {
|
|||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(200);
|
$this->assert_response(200);
|
||||||
$this->assert_title("Upload Status");
|
$this->assert_title("Upload Status");
|
||||||
$this->assert_text("Image needs to be in one of these ratios");
|
$this->assert_text("Image needs to be in one of these ratios");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class RSSCommentsTest extends ShimmieWebTestCase {
|
class RSSCommentsTest {
|
||||||
function testImageFeed() {
|
function testImageFeed() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->set_field('comment', "Test Comment ASDFASDF");
|
$this->set_field('comment', "Test Comment ASDFASDF");
|
||||||
$this->click("Post Comment");
|
$this->click("Post Comment");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class RSSImagesTest extends ShimmieWebTestCase {
|
class RSSImagesTest {
|
||||||
function testImageFeed() {
|
function testImageFeed() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->get_page('rss/images');
|
$this->get_page('rss/images');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class SetupTest extends SCoreWebTestCase {
|
class SetupTest {
|
||||||
function testAuth() {
|
function testAuth() {
|
||||||
$this->get_page('setup');
|
$this->get_page('setup');
|
||||||
$this->assert_response(403);
|
$this->assert_response(403);
|
||||||
|
@ -111,6 +111,7 @@ class ShimmieApi extends Extension {
|
|||||||
$type = "id";
|
$type = "id";
|
||||||
if($event->count_args() == 1) {
|
if($event->count_args() == 1) {
|
||||||
$query = $event->get_arg(0);
|
$query = $event->get_arg(0);
|
||||||
|
$type = "name";
|
||||||
}
|
}
|
||||||
elseif(isset($_GET['id'])) {
|
elseif(isset($_GET['id'])) {
|
||||||
$query = $_GET['id'];
|
$query = $_GET['id'];
|
||||||
@ -121,7 +122,7 @@ class ShimmieApi extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$all = $database->get_row(
|
$all = $database->get_row(
|
||||||
"SELECT id,name,joindate,class FROM users WHERE ".$type."=?",
|
"SELECT id,name,joindate,class FROM users WHERE $type=?",
|
||||||
array($query));
|
array($query));
|
||||||
|
|
||||||
if(!empty($all)){
|
if(!empty($all)){
|
||||||
|
@ -1,29 +1,23 @@
|
|||||||
<?php
|
<?php
|
||||||
class ShimmieApiTest extends ShimmieWebTestCase {
|
class ShimmieApiTest extends ShimmiePHPUnitTestCase {
|
||||||
function testAPI() {
|
function testAPI() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
|
|
||||||
|
// FIXME: get_page should support GET params
|
||||||
$this->get_page("api/shimmie/get_tags");
|
$this->get_page("api/shimmie/get_tags");
|
||||||
$this->get_page("api/shimmie/get_tags/pb");
|
$this->get_page("api/shimmie/get_tags/pb");
|
||||||
$this->get_page("api/shimmie/get_tags?tag=pb");
|
//$this->get_page("api/shimmie/get_tags?tag=pb");
|
||||||
$this->get_page("api/shimmie/get_image/$image_id");
|
$this->get_page("api/shimmie/get_image/$image_id");
|
||||||
$this->get_page("api/shimmie/get_image?id=$image_id");
|
//$this->get_page("api/shimmie/get_image?id=$image_id");
|
||||||
$this->get_page("api/shimmie/find_images");
|
$this->get_page("api/shimmie/find_images");
|
||||||
$this->get_page("api/shimmie/find_images/pbx");
|
$this->get_page("api/shimmie/find_images/pbx");
|
||||||
$this->get_page("api/shimmie/find_images/pbx/1");
|
$this->get_page("api/shimmie/find_images/pbx/1");
|
||||||
$this->get_page("api/shimmie/get_user/demo");
|
$this->get_page("api/shimmie/get_user/demo");
|
||||||
$this->get_page("api/shimmie/get_user?name=demo");
|
//$this->get_page("api/shimmie/get_user?name=demo");
|
||||||
$this->get_page("api/shimmie/get_user?id=2");
|
//$this->get_page("api/shimmie/get_user?id=2");
|
||||||
|
|
||||||
// FIXME: test unspecified / bad values
|
// FIXME: test unspecified / bad values
|
||||||
// FIXME: test that json is encoded properly
|
// FIXME: test that json is encoded properly
|
||||||
|
|
||||||
$this->log_out();
|
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
|
||||||
$this->delete_image($image_id);
|
|
||||||
$this->log_out();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class SiteDescriptionTest extends SCoreWebTestCase {
|
class SiteDescriptionTest {
|
||||||
function testSiteDescription() {
|
function testSiteDescription() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page('setup');
|
$this->get_page('setup');
|
||||||
|
@ -20,7 +20,7 @@ class XMLSitemap extends Extension
|
|||||||
if ($event->page_matches("sitemap.xml")) {
|
if ($event->page_matches("sitemap.xml")) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$this->sitemap_filepath = $_SERVER['DOCUMENT_ROOT'] . "/data/cache/sitemap.xml";
|
$this->sitemap_filepath = data_path("cache/sitemap.xml");
|
||||||
// determine if new sitemap needs to be generated
|
// determine if new sitemap needs to be generated
|
||||||
if ($this->new_sitemap_needed()) {
|
if ($this->new_sitemap_needed()) {
|
||||||
// determine which type of sitemap to generate
|
// determine which type of sitemap to generate
|
||||||
@ -49,6 +49,7 @@ class XMLSitemap extends Extension
|
|||||||
{
|
{
|
||||||
/* --- Add latest images to sitemap with higher priority --- */
|
/* --- Add latest images to sitemap with higher priority --- */
|
||||||
$latestimages = Image::find_images(0, 50, array());
|
$latestimages = Image::find_images(0, 50, array());
|
||||||
|
if(empty($latestimages)) return;
|
||||||
$latestimages_urllist = array();
|
$latestimages_urllist = array();
|
||||||
foreach ($latestimages as $arrayid => $image) {
|
foreach ($latestimages as $arrayid => $image) {
|
||||||
// create url from image id's
|
// create url from image id's
|
||||||
@ -160,6 +161,10 @@ class XMLSitemap extends Extension
|
|||||||
*/
|
*/
|
||||||
private function new_sitemap_needed()
|
private function new_sitemap_needed()
|
||||||
{
|
{
|
||||||
|
if(!file_exists($this->sitemap_filepath)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
$sitemap_generation_interval = 86400; // allow new site map every day
|
$sitemap_generation_interval = 86400; // allow new site map every day
|
||||||
$last_generated_time = filemtime($this->sitemap_filepath);
|
$last_generated_time = filemtime($this->sitemap_filepath);
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class XMLSitemapTest extends ShimmieWebTestCase {
|
class XMLSitemapTest extends ShimmiePHPUnitTestCase {
|
||||||
function testBasic() {
|
function testBasic() {
|
||||||
# this will implicitly check that there are no
|
# this will implicitly check that there are no
|
||||||
# PHP-level error messages
|
# PHP-level error messages
|
||||||
$this->get_page('sitemap.xml');
|
$this->get_page('sitemap.xml');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class TagEditTest extends ShimmieWebTestCase {
|
class TagEditTest {
|
||||||
function testTagEdit() {
|
function testTagEdit() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_title("Image $image_id: pbx");
|
$this->assert_title("Image $image_id: pbx");
|
||||||
$this->set_field("tag_edit__tags", "new");
|
$this->set_field("tag_edit__tags", "new");
|
||||||
@ -20,7 +20,7 @@ class TagEditTest extends ShimmieWebTestCase {
|
|||||||
|
|
||||||
function testSourceEdit() {
|
function testSourceEdit() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_title("Image $image_id: pbx");
|
$this->assert_title("Image $image_id: pbx");
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ class TagEditTest extends ShimmieWebTestCase {
|
|||||||
function testMassEdit() {
|
function testMassEdit() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
|
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_title("Image $image_id: pbx");
|
$this->assert_title("Image $image_id: pbx");
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
class TagHistoryTest extends ShimmieWebTestCase {
|
class TagHistoryTest {
|
||||||
function testTagHistory() {
|
function testTagHistory() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
$this->assert_title("Image $image_id: pbx");
|
$this->assert_title("Image $image_id: pbx");
|
||||||
$this->set_field("tag_edit__tags", "new");
|
$this->set_field("tag_edit__tags", "new");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class TagListTest extends ShimmieWebTestCase {
|
class TagListTest extends ShimmiePHPUnitTestCase {
|
||||||
var $pages = array("map", "alphabetic", "popularity", "categories");
|
var $pages = array("map", "alphabetic", "popularity", "categories");
|
||||||
|
|
||||||
function testTagList() {
|
function testTagList() {
|
||||||
@ -34,4 +34,3 @@ class TagListTest extends ShimmieWebTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class TipsTest extends SCoreWebTestCase {
|
class TipsTest {
|
||||||
function setUp() {
|
function setUp() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$raw = $this->get_page("tips/list");
|
$raw = $this->get_page("tips/list");
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
class UploadTest extends ShimmieWebTestCase {
|
class UploadTest {
|
||||||
function testUpload() {
|
function testUpload() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
|
|
||||||
$this->get_page("upload");
|
$this->get_page("upload");
|
||||||
$this->assert_title("Upload");
|
$this->assert_title("Upload");
|
||||||
|
|
||||||
$image_id_1 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(302);
|
$this->assert_response(302);
|
||||||
|
|
||||||
$image_id_2 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id_2 = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->assert_response(200);
|
$this->assert_response(200);
|
||||||
$this->assert_title("Upload Status");
|
$this->assert_title("Upload Status");
|
||||||
$this->assert_text("already has hash");
|
$this->assert_text("already has hash");
|
||||||
@ -21,7 +21,7 @@ class UploadTest extends ShimmieWebTestCase {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
// FIXME: huge.dat is rejected for other reasons; manual testing shows that this works
|
// FIXME: huge.dat is rejected for other reasons; manual testing shows that this works
|
||||||
file_put_contents("huge.dat", file_get_contents("ext/simpletest/data/pbx_screenshot.jpg") . str_repeat("U", 1024*1024*3));
|
file_put_contents("huge.dat", file_get_contents("tests/pbx_screenshot.jpg") . str_repeat("U", 1024*1024*3));
|
||||||
$image_id_4 = $this->post_image("index.php", "test");
|
$image_id_4 = $this->post_image("index.php", "test");
|
||||||
$this->assert_response(200);
|
$this->assert_response(200);
|
||||||
$this->assert_title("Upload Status");
|
$this->assert_title("Upload Status");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class UserPageTest extends SCoreWebTestCase {
|
class UserPageTest extends ShimmiePHPUnitTestCase {
|
||||||
function testUserPage() {
|
function testUserPage() {
|
||||||
$this->get_page('user');
|
$this->get_page('user');
|
||||||
$this->assert_title("Not Logged In");
|
$this->assert_title("Not Logged In");
|
||||||
@ -15,7 +15,8 @@ class UserPageTest extends SCoreWebTestCase {
|
|||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
// should be on the user page
|
// should be on the user page
|
||||||
$this->assert_title(USER_NAME+"'s Page");
|
$this->get_page('user/test');
|
||||||
|
$this->assert_title("test's Page");
|
||||||
$this->assert_text("Options");
|
$this->assert_text("Options");
|
||||||
// FIXME: check class
|
// FIXME: check class
|
||||||
//$this->assert_no_text("Admin:");
|
//$this->assert_no_text("Admin:");
|
||||||
@ -23,7 +24,8 @@ class UserPageTest extends SCoreWebTestCase {
|
|||||||
|
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
// should be on the user page
|
// should be on the user page
|
||||||
$this->assert_title(ADMIN_NAME+"'s Page");
|
$this->get_page('user/demo');
|
||||||
|
$this->assert_title("demo's Page");
|
||||||
$this->assert_text("Options");
|
$this->assert_text("Options");
|
||||||
// FIXME: check class
|
// FIXME: check class
|
||||||
//$this->assert_text("Admin:");
|
//$this->assert_text("Admin:");
|
||||||
@ -37,4 +39,3 @@ class UserPageTest extends SCoreWebTestCase {
|
|||||||
$this->assert_text("demo");
|
$this->assert_text("demo");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
class ViewTest extends ShimmieWebTestCase {
|
class ViewTest {
|
||||||
function testViewPage() {
|
function testViewPage() {
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id_1 = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "test");
|
$image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "test");
|
||||||
$image_id_2 = $this->post_image("ext/simpletest/data/bedroom_workshop.jpg", "test2");
|
$image_id_2 = $this->post_image("tests/bedroom_workshop.jpg", "test2");
|
||||||
$image_id_3 = $this->post_image("ext/simpletest/data/favicon.png", "test");
|
$image_id_3 = $this->post_image("tests/favicon.png", "test");
|
||||||
$idp1 = $image_id_3 + 1;
|
$idp1 = $image_id_3 + 1;
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class WikiTest extends SCoreWebTestCase {
|
class WikiTest {
|
||||||
function testIndex() {
|
function testIndex() {
|
||||||
$this->get_page("wiki");
|
$this->get_page("wiki");
|
||||||
$this->assert_title("Index");
|
$this->assert_title("Index");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
class WordFilterTest extends ShimmieWebTestCase {
|
class WordFilterTest {
|
||||||
function testWordFilter() {
|
function testWordFilter() {
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->get_page("setup");
|
$this->get_page("setup");
|
||||||
@ -8,7 +8,7 @@ class WordFilterTest extends ShimmieWebTestCase {
|
|||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$this->log_in_as_user();
|
$this->log_in_as_user();
|
||||||
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
|
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "pbx computer screenshot");
|
||||||
$this->get_page("post/view/$image_id");
|
$this->get_page("post/view/$image_id");
|
||||||
|
|
||||||
# regular
|
# regular
|
||||||
|
35
install.php
35
install.php
@ -3,11 +3,16 @@
|
|||||||
* Shimmie Installer
|
* Shimmie Installer
|
||||||
*
|
*
|
||||||
* @package Shimmie
|
* @package Shimmie
|
||||||
* @copyright Copyright (c) 2007-2014, Shish et al.
|
* @copyright Copyright (c) 2007-2015, Shish et al.
|
||||||
* @author Shish <webmaster at shishnet.org>, jgen <jeffgenovy at gmail.com>
|
* @author Shish <webmaster at shishnet.org>, jgen <jeffgenovy at gmail.com>
|
||||||
* @link http://code.shishnet.org/shimmie2/
|
* @link http://code.shishnet.org/shimmie2/
|
||||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
*
|
*
|
||||||
|
* Initialise the database, check that folder
|
||||||
|
* permissions are set properly.
|
||||||
|
*
|
||||||
|
* This file should be independant of the database
|
||||||
|
* and other such things that aren't ready yet
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: Rewrite the entire installer and make it more readable.
|
// TODO: Rewrite the entire installer and make it more readable.
|
||||||
@ -18,7 +23,6 @@ date_default_timezone_set('UTC');
|
|||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<!-- Shimmie (c) Shish et all. 2007-2013 -->
|
|
||||||
<head>
|
<head>
|
||||||
<title>Shimmie Installation</title>
|
<title>Shimmie Installation</title>
|
||||||
<link rel="shortcut icon" href="favicon.ico" />
|
<link rel="shortcut icon" href="favicon.ico" />
|
||||||
@ -113,21 +117,20 @@ function eok($name, $value) {
|
|||||||
function do_install() { // {{{
|
function do_install() { // {{{
|
||||||
if(file_exists("data/config/auto_install.conf.php")) {
|
if(file_exists("data/config/auto_install.conf.php")) {
|
||||||
require_once "data/config/auto_install.conf.php";
|
require_once "data/config/auto_install.conf.php";
|
||||||
install_process();
|
|
||||||
}
|
}
|
||||||
else if(@$_POST["database_type"] == "sqlite" && isset($_POST["database_name"])) {
|
else if(@$_POST["database_type"] == "sqlite" && isset($_POST["database_name"])) {
|
||||||
define('DATABASE_DSN', "sqlite:{$_POST["database_name"]}");
|
define('DATABASE_DSN', "sqlite:{$_POST["database_name"]}");
|
||||||
define("DATABASE_KA", true); // Keep database connection alive
|
|
||||||
install_process();
|
|
||||||
}
|
}
|
||||||
else if(isset($_POST['database_type']) && isset($_POST['database_host']) && isset($_POST['database_user']) && isset($_POST['database_name'])) {
|
else if(isset($_POST['database_type']) && isset($_POST['database_host']) && isset($_POST['database_user']) && isset($_POST['database_name'])) {
|
||||||
define('DATABASE_DSN', "{$_POST['database_type']}:user={$_POST['database_user']};password={$_POST['database_password']};host={$_POST['database_host']};dbname={$_POST['database_name']}");
|
define('DATABASE_DSN', "{$_POST['database_type']}:user={$_POST['database_user']};password={$_POST['database_password']};host={$_POST['database_host']};dbname={$_POST['database_name']}");
|
||||||
define("DATABASE_KA", true); // Keep database connection alive
|
|
||||||
install_process();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ask_questions();
|
ask_questions();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define("DATABASE_KA", true);
|
||||||
|
install_process();
|
||||||
} // }}}
|
} // }}}
|
||||||
|
|
||||||
function ask_questions() { // {{{
|
function ask_questions() { // {{{
|
||||||
@ -245,8 +248,6 @@ function install_process() { // {{{
|
|||||||
create_tables();
|
create_tables();
|
||||||
insert_defaults();
|
insert_defaults();
|
||||||
write_config();
|
write_config();
|
||||||
|
|
||||||
header("Location: index.php");
|
|
||||||
} // }}}
|
} // }}}
|
||||||
|
|
||||||
function create_tables() { // {{{
|
function create_tables() { // {{{
|
||||||
@ -435,7 +436,17 @@ function write_config() { // {{{
|
|||||||
mkdir("data/config", 0755, true);
|
mkdir("data/config", 0755, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!file_put_contents("data/config/shimmie.conf.php", $file_content, LOCK_EX)) {
|
if(file_put_contents("data/config/shimmie.conf.php", $file_content, LOCK_EX)) {
|
||||||
|
header("Location: index.php");
|
||||||
|
print <<<EOD
|
||||||
|
<div id="installer">
|
||||||
|
<h1>Shimmie Installer</h1>
|
||||||
|
<h3>Things are OK \o/</h3>
|
||||||
|
<p>If you aren't redirected, <a href="index.php">click here to Continue</a>.
|
||||||
|
</div>
|
||||||
|
EOD;
|
||||||
|
}
|
||||||
|
else {
|
||||||
$h_file_content = htmlentities($file_content);
|
$h_file_content = htmlentities($file_content);
|
||||||
print <<<EOD
|
print <<<EOD
|
||||||
<div id="installer">
|
<div id="installer">
|
||||||
@ -448,12 +459,12 @@ function write_config() { // {{{
|
|||||||
|
|
||||||
<p><textarea cols="80" rows="2">$h_file_content</textarea>
|
<p><textarea cols="80" rows="2">$h_file_content</textarea>
|
||||||
|
|
||||||
<p>Once done, <a href="index.php">Click here to Continue</a>.
|
<p>Once done, <a href="index.php">click here to Continue</a>.
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
</div>
|
</div>
|
||||||
EOD;
|
EOD;
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
echo "\n";
|
||||||
} // }}}
|
} // }}}
|
||||||
?>
|
?>
|
||||||
</body>
|
</body>
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* SimpleTest integration with Travis CI for Shimmie
|
|
||||||
*
|
|
||||||
* @package Shimmie
|
|
||||||
* @author jgen <jeffgenovy@gmail.com>
|
|
||||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
||||||
* @copyright Copyright (c) 2014, jgen
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(PHP_SAPI !== 'cli') die('cli only');
|
|
||||||
|
|
||||||
require_once('lib/simpletest/unit_tester.php');
|
|
||||||
require_once('lib/simpletest/web_tester.php');
|
|
||||||
require_once('lib/simpletest/reporter.php');
|
|
||||||
|
|
||||||
// Enable all errors.
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
define("CLI_LOG_LEVEL", -100); // output everything.
|
|
||||||
|
|
||||||
// Get the command line option telling us where the webserver is.
|
|
||||||
$options = getopt("h:");
|
|
||||||
$host = rtrim(trim(trim($options["h"], '"')), "/");
|
|
||||||
|
|
||||||
if (empty($host)){ $host = "http://127.0.0.1"; }
|
|
||||||
|
|
||||||
define("_TRAVIS_WEBHOST", $host);
|
|
||||||
|
|
||||||
// The code below is based on the code in index.php
|
|
||||||
//--------------------------------------------------
|
|
||||||
|
|
||||||
require_once('core/_bootstrap.inc.php');
|
|
||||||
require_once('ext/simpletest/main.php');
|
|
||||||
|
|
||||||
// Fire off the InitExtEvent()
|
|
||||||
$page = class_exists("CustomPage") ? new CustomPage() : new Page();
|
|
||||||
$user = _get_user();
|
|
||||||
send_event(new InitExtEvent());
|
|
||||||
|
|
||||||
// Create the necessary users for the tests.
|
|
||||||
$userPage = new UserPage();
|
|
||||||
$userPage->onUserCreation(new UserCreationEvent("demo", "demo", ""));
|
|
||||||
$userPage->onUserCreation(new UserCreationEvent("test", "test", ""));
|
|
||||||
|
|
||||||
// Commit the users.
|
|
||||||
$database->commit();
|
|
||||||
|
|
||||||
// Fire off the InitExtEvent() again after we have made the users.
|
|
||||||
$page = class_exists("CustomPage") ? new CustomPage() : new Page();
|
|
||||||
$user = _get_user();
|
|
||||||
send_event(new InitExtEvent());
|
|
||||||
|
|
||||||
// Now we can actually run all the tests.
|
|
||||||
$all = new TestFinder("");
|
|
||||||
$results = $all->run(new TextReporter());
|
|
||||||
|
|
||||||
// Travis-CI needs to know the results of the tests.
|
|
||||||
exit ($results ? 0 : 1);
|
|
115
tests/bootstrap.php
Normal file
115
tests/bootstrap.php
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<?php
|
||||||
|
define("TIMEZONE", 'UTC');
|
||||||
|
define("EXTRA_EXTS", str_replace("ext/", "", implode(',', glob('ext/*'))));
|
||||||
|
define("BASE_HREF", "/");
|
||||||
|
define("CLI_LOG_LEVEL", 50);
|
||||||
|
|
||||||
|
$_SERVER['QUERY_STRING'] = '/';
|
||||||
|
|
||||||
|
require_once "core/_bootstrap.inc.php";
|
||||||
|
|
||||||
|
if(is_null(User::by_name("demo"))) {
|
||||||
|
$userPage = new UserPage();
|
||||||
|
$userPage->onUserCreation(new UserCreationEvent("demo", "demo", ""));
|
||||||
|
$userPage->onUserCreation(new UserCreationEvent("test", "test", ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class ShimmiePHPUnitTestCase extends PHPUnit_Framework_TestCase {
|
||||||
|
protected $backupGlobalsBlacklist = array('database', 'config');
|
||||||
|
private $images = array();
|
||||||
|
|
||||||
|
public function setUp() {
|
||||||
|
// things to do after bootstrap and before request
|
||||||
|
// log in as anon
|
||||||
|
$this->log_out();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown() {
|
||||||
|
foreach($this->images as $image_id) {
|
||||||
|
$this->delete_image($image_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function get_page($page_name) {
|
||||||
|
// use a fresh page
|
||||||
|
global $page;
|
||||||
|
$page = class_exists("CustomPage") ? new CustomPage() : new Page();
|
||||||
|
send_event(new PageRequestEvent($page_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
// page things
|
||||||
|
protected function assert_title($title) {
|
||||||
|
global $page;
|
||||||
|
$this->assertEquals($title, $page->title);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function assert_response($code) {
|
||||||
|
global $page;
|
||||||
|
$this->assertEquals($code, $page->code);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function has_text($text) {
|
||||||
|
global $page;
|
||||||
|
foreach($page->blocks as $block) {
|
||||||
|
if(strpos($block->header, $text) !== false) return true;
|
||||||
|
if(strpos($block->body, $text) !== false) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function assert_text($text) {
|
||||||
|
$this->assertTrue($this->has_text($text));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function assert_no_text($text) {
|
||||||
|
$this->assertFalse($this->has_text($text));
|
||||||
|
}
|
||||||
|
|
||||||
|
// user things
|
||||||
|
protected function log_in_as_admin() {
|
||||||
|
global $user;
|
||||||
|
$user = User::by_name('demo');
|
||||||
|
$this->assertNotNull($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function log_in_as_user() {
|
||||||
|
global $user;
|
||||||
|
$user = User::by_name('test');
|
||||||
|
$this->assertNotNull($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function log_out() {
|
||||||
|
global $user, $config;
|
||||||
|
$user = User::by_id($config->get_int("anon_id", 0));
|
||||||
|
$this->assertNotNull($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
// post things
|
||||||
|
/**
|
||||||
|
* @param string $filename
|
||||||
|
* @param string|string[] $tags
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
protected function post_image($filename, $tags) {
|
||||||
|
$dae = new DataUploadEvent($filename, array(
|
||||||
|
"filename"=>$filename,
|
||||||
|
"extension"=>'jpg', // fixme
|
||||||
|
"tags"=>$tags,
|
||||||
|
"source"=>null,
|
||||||
|
));
|
||||||
|
send_event($dae);
|
||||||
|
$this->images[] = $dae->image_id;
|
||||||
|
return $dae->image_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $image_id
|
||||||
|
*/
|
||||||
|
protected function delete_image($image_id) {
|
||||||
|
$img = Image::by_id($image_id);
|
||||||
|
if($img) {
|
||||||
|
$ide = new ImageDeletionEvent($img);
|
||||||
|
send_event($ide);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,78 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* SimpleTest integration with Travis CI for Shimmie
|
|
||||||
*
|
|
||||||
* @package Shimmie
|
|
||||||
* @author jgen <jeffgenovy@gmail.com>
|
|
||||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
||||||
* @copyright Copyright (c) 2014, jgen
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(PHP_SAPI !== 'cli') die('cli only');
|
|
||||||
|
|
||||||
require_once('lib/simpletest/unit_tester.php');
|
|
||||||
require_once('lib/simpletest/web_tester.php');
|
|
||||||
require_once('lib/simpletest/reporter.php');
|
|
||||||
|
|
||||||
// Enable all errors.
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
|
|
||||||
// Get the command line option telling us what database and host to use.
|
|
||||||
$options = getopt("d:h:");
|
|
||||||
$db = $options["d"];
|
|
||||||
$host = rtrim(trim(trim($options["h"], '"')), "/");
|
|
||||||
|
|
||||||
// Check if they are empty.
|
|
||||||
if (empty($db)){ die("Error: need to specify a database for the test environment."); }
|
|
||||||
if (empty($host)){ $host = "http://127.0.0.1"; }
|
|
||||||
|
|
||||||
define("_TRAVIS_DATABASE", $db);
|
|
||||||
define("_TRAVIS_WEBHOST", $host);
|
|
||||||
|
|
||||||
// Currently the tests only support MySQL and PostgreSQL.
|
|
||||||
if ($db === "mysql") {
|
|
||||||
define("_TRAVIS_DATABASE_USERNAME", "root");
|
|
||||||
define("_TRAVIS_DATABASE_PASSWORD", "");
|
|
||||||
} elseif ($db === "pgsql") {
|
|
||||||
define("_TRAVIS_DATABASE_USERNAME", "postgres");
|
|
||||||
define("_TRAVIS_DATABASE_PASSWORD", "");
|
|
||||||
} else {
|
|
||||||
die("Unsupported Database Option");
|
|
||||||
}
|
|
||||||
|
|
||||||
class ShimmieInstallerTest extends WebTestCase {
|
|
||||||
function testInstallShimmie()
|
|
||||||
{
|
|
||||||
// Get the settings from the global constants.
|
|
||||||
$db = constant("_TRAVIS_DATABASE");
|
|
||||||
$host = constant("_TRAVIS_WEBHOST");
|
|
||||||
$username = constant("_TRAVIS_DATABASE_USERNAME");
|
|
||||||
$password = constant("_TRAVIS_DATABASE_PASSWORD");
|
|
||||||
|
|
||||||
// Make sure that we know where the host is.
|
|
||||||
$this->assertFalse(empty($host));
|
|
||||||
// Make sure that we know what database to use.
|
|
||||||
$this->assertFalse(empty($db));
|
|
||||||
|
|
||||||
$this->get($host);
|
|
||||||
$this->assertResponse(200);
|
|
||||||
$this->assertTitle("Shimmie Installation");
|
|
||||||
$this->assertText("Database Install");
|
|
||||||
|
|
||||||
$this->setField("database_type", $db);
|
|
||||||
$this->assertField("database_type", $db);
|
|
||||||
$this->assertField("database_host", "localhost");
|
|
||||||
$this->setField("database_user", $username);
|
|
||||||
$this->setField("database_password", $password);
|
|
||||||
$this->assertField("database_name", "shimmie");
|
|
||||||
$this->clickSubmit("Go!");
|
|
||||||
|
|
||||||
if (!$this->assertText("Installation Succeeded!")) {
|
|
||||||
$this->showSource();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$test = new TestSuite('Install Shimmie');
|
|
||||||
$test->add(new ShimmieInstallerTest());
|
|
||||||
exit ($test->run(new TextReporter()) ? 0 : 1);
|
|
7
tests/phpunit.xml
Normal file
7
tests/phpunit.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<phpunit bootstrap="../tests/bootstrap.php" colors="true">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="shimmie">
|
||||||
|
<directory suffix="test.php">../ext/</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
</phpunit>
|
Loading…
x
Reference in New Issue
Block a user