diff --git a/contrib/simpletest/main.php b/contrib/simpletest/main.php
index f226b5d9..a0146560 100644
--- a/contrib/simpletest/main.php
+++ b/contrib/simpletest/main.php
@@ -10,7 +10,6 @@ require_once('simpletest/web_tester.php');
require_once('simpletest/unit_tester.php');
require_once('simpletest/reporter.php');
-define('TEST_BASE', "http://shimmie.shishnet.org/branch_2.3/index.php?q=");
define('USER_NAME', "test");
define('USER_PASS', "test");
define('ADMIN_NAME', "demo");
@@ -18,7 +17,7 @@ define('ADMIN_PASS', "demo");
class ShimmieWebTestCase extends WebTestCase {
protected function get_page($page) {
- $this->get(TEST_BASE.'/'.$page);
+ $this->get($_SERVER["HTTP_HOST"].'/'.make_link($page));
}
protected function log_in_as_user() {
$this->get_page('post/list');
@@ -49,7 +48,7 @@ class ShimmieWebTestCase extends WebTestCase {
$this->assertText("Upload");
$this->setField("data0", $filename);
$this->setField("tags", $tags);
- $this->click("Post");
+ $this->clickSubmitById("uploadbutton");
$raw_headers = $this->getBrowser()->getHeaders();
$headers = explode("\n", $raw_headers);
@@ -74,8 +73,9 @@ class ShimmieWebTestCase extends WebTestCase {
class TestFinder extends TestSuite {
function TestFinder($hint) {
+ if(strpos($hint, "..") !== FALSE) return;
$dir = "*";
- if(file_exists("ext/$hint/test.php")) $dir = $hint; // FIXME: check for ..
+ if(file_exists("ext/$hint/test.php")) $dir = $hint;
$this->TestSuite('All tests');
foreach(glob("ext/$dir/test.php") as $file) {
$this->addFile($file);
diff --git a/contrib/simpletest/standalone.php b/contrib/simpletest/standalone.php
deleted file mode 100644
index 4439ebee..00000000
--- a/contrib/simpletest/standalone.php
+++ /dev/null
@@ -1,28 +0,0 @@
-TestSuite('All tests');
- foreach(glob("ext/*/test.php") as $file) {
- $this->addFile($file);
- }
- }
-}
-
-$all = new AllTests();
-$all->run(new SectionReporter());
-?>
diff --git a/ext/comment/test.php b/ext/comment/test.php
index 859285a9..a74e89d1 100644
--- a/ext/comment/test.php
+++ b/ext/comment/test.php
@@ -1,11 +1,51 @@
get_page('comment/list');
- $this->assertTitle('Comments');
+ $this->log_in_as_user();
+ $image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
- $this->get_page('comment/list/2');
- $this->assertTitle('Comments');
+ # a good comment
+ $this->get_page("post/view/$image_id");
+ $this->setField('comment', "Test Comment ASDFASDF");
+ $this->click("Post Comment");
+ $this->assertText("ASDFASDF");
+
+ # dupe
+ $this->get_page("post/view/$image_id");
+ $this->setField('comment', "Test Comment ASDFASDF");
+ $this->click("Post Comment");
+ $this->assertText("try and be more original");
+
+ # empty comment
+ $this->get_page("post/view/$image_id");
+ $this->setField('comment', "");
+ $this->click("Post Comment");
+ $this->assertText("Comments need text...");
+
+ # whitespace is still empty...
+ $this->get_page("post/view/$image_id");
+ $this->setField('comment', " \t\r\n");
+ $this->click("Post Comment");
+ $this->assertText("Comments need text...");
+
+ # repetitive (gzip gives 10x improvement)
+ $this->get_page("post/view/$image_id");
+ $this->setField('comment', str_repeat("U", 5000));
+ $this->click("Post Comment");
+ $this->assertText("Comment too repetitive~");
+
+ $this->log_out();
+
+ $this->get_page('comment/list');
+ $this->assertTitle('Comments');
+ $this->assertText('ASDFASDF');
+
+ $this->get_page('comment/list/2');
+ $this->assertTitle('Comments');
+
+ $this->log_in_as_admin();
+ $this->delete_image($image_id);
+ $this->log_out();
}
}
?>
diff --git a/ext/comment/theme.php b/ext/comment/theme.php
index cc411424..1289aa22 100644
--- a/ext/comment/theme.php
+++ b/ext/comment/theme.php
@@ -120,7 +120,7 @@ class CommentListTheme extends Themelet {
-
+
";
}
diff --git a/ext/index/test.php b/ext/index/test.php
index 0d507504..e7605f25 100644
--- a/ext/index/test.php
+++ b/ext/index/test.php
@@ -1,6 +1,10 @@
get_page('post/list');
+ $this->assertTitle("Welcome to Shimmie ".VERSION);
+ $this->assertNoText("Prev | Index | Next");
+
$this->log_in_as_user();
$image_id = $this->post_image("ext/simpletest/data/pbx_screenshot.jpg", "pbx computer screenshot");
$this->log_out();
diff --git a/ext/upload/theme.php b/ext/upload/theme.php
index 03ca2737..bb14a277 100644
--- a/ext/upload/theme.php
+++ b/ext/upload/theme.php
@@ -40,7 +40,7 @@ class UploadTheme extends Themelet {
$upload_list