From 1101eda89fdb3b8cc5f5fe0dc2c2ac4c1705508e Mon Sep 17 00:00:00 2001
From: Tobias Sarnowski <tobias@trustedco.de>
Date: Mon, 16 Apr 2012 14:42:18 +0000
Subject: [PATCH] added scope tests verify that multiple requests can be made
 with multiple test methods.

---
 _testing/inttests.php                         | 13 ++++++
 ...basic.test.php => inttests_basic.test.php} |  5 ++
 ...hooks.test.php => inttests_hooks.test.php} |  0
 _testing/inttests/inttests_scope.test.php     | 46 +++++++++++++++++++
 4 files changed, 64 insertions(+)
 rename _testing/inttests/{basic.test.php => inttests_basic.test.php} (66%)
 rename _testing/inttests/{hooks.test.php => inttests_hooks.test.php} (100%)
 create mode 100644 _testing/inttests/inttests_scope.test.php

diff --git a/_testing/inttests.php b/_testing/inttests.php
index 7b263deb9..4eb1f0286 100644
--- a/_testing/inttests.php
+++ b/_testing/inttests.php
@@ -41,6 +41,17 @@ mkdir(DOKU_PLUGIN);
 rcopy(TMP_DIR, dirname(__FILE__).'/inttests.conf');
 rcopy(TMP_DIR, dirname(__FILE__).'/inttests.data');
 
+// cleanup dir after exit
+register_shutdown_function(function() {
+	// TODO delete recursive tmp dir
+});
+
+// TODO disable all non-default plugins in config
+// TODO if plugin test, enable plugin
+// TODO load plugin descriptor and enable dependent plugins
+
+// TODO set global variables, phpunit will restore them for every test (test that)
+
 // load dw
 require_once(DOKU_INC.'inc/init.php');
 
@@ -142,4 +153,6 @@ class TestResponse {
 	function getHeaders() {
 		return $this->headers;
 	}
+
+	// TODO provide findById, findBy... (https://github.com/cosmocode/dokuwiki-plugin-scrape/blob/master/phpQuery-onefile.php)
 }
diff --git a/_testing/inttests/basic.test.php b/_testing/inttests/inttests_basic.test.php
similarity index 66%
rename from _testing/inttests/basic.test.php
rename to _testing/inttests/inttests_basic.test.php
index 56cef965f..78c333963 100644
--- a/_testing/inttests/basic.test.php
+++ b/_testing/inttests/inttests_basic.test.php
@@ -1,6 +1,11 @@
 <?php
 
 class BasicTest extends PHPUnit_Framework_TestCase {
+	/**
+	 * Execute the simplest possible request and expect
+	 * a dokuwiki page which obviously has the word "DokuWiki"
+	 * in it somewhere.
+	 */
 	function testSimpleRun() {
 		$request = new TestRequest();
 
diff --git a/_testing/inttests/hooks.test.php b/_testing/inttests/inttests_hooks.test.php
similarity index 100%
rename from _testing/inttests/hooks.test.php
rename to _testing/inttests/inttests_hooks.test.php
diff --git a/_testing/inttests/inttests_scope.test.php b/_testing/inttests/inttests_scope.test.php
new file mode 100644
index 000000000..e17b49fb3
--- /dev/null
+++ b/_testing/inttests/inttests_scope.test.php
@@ -0,0 +1,46 @@
+<?php
+
+class ScopeTest extends PHPUnit_Framework_TestCase {
+	/**
+	 * It should be possible to have two test cases within one test class.
+	 */
+	function testFirstRun() {
+		$request = new TestRequest();
+		$response = $request->execute();
+		$this->assertTrue(
+			strpos($response->getContent(), 'DokuWiki') >= 0,
+			'DokuWiki was not a word in the output'
+		);
+	}
+
+	/**
+	 * @depends testFirstRun
+	 */
+	function testSecondRun() {
+		$request = new TestRequest();
+		$response = $request->execute();
+		$this->assertTrue(
+			strpos($response->getContent(), 'DokuWiki') >= 0,
+			'DokuWiki was not a word in the output'
+		);
+	}
+
+	/**
+	 * two requests within the same test case should be possible
+	 */
+	function testMultipleRequests() {
+		$request = new TestRequest();
+		$response = $request->execute();
+		$this->assertTrue(
+			strpos($response->getContent(), 'DokuWiki') >= 0,
+			'DokuWiki was not a word in the output'
+		);
+
+		$request = new TestRequest();
+		$response = $request->execute();
+		$this->assertTrue(
+			strpos($response->getContent(), 'DokuWiki') >= 0,
+			'DokuWiki was not a word in the output'
+		);
+	}
+}
-- 
GitLab