aboutsummaryrefslogtreecommitdiff
path: root/tests/Api
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2011-05-02 18:07:15 +0200
committerChristian Weiske <cweiske@cweiske.de>2011-05-02 18:07:15 +0200
commit8be81abfe6193e221afcdc35582d34505797a7b8 (patch)
tree95ae7e30d40596f27875adb2f96a15fc827f9f86 /tests/Api
parentf629d081ddf52e3cb83ffbfc973a97adc691790c (diff)
parent40b4674e471f8b0fbdc77a26eec86018e2ab03ea (diff)
downloadsemanticscuttle-8be81abfe6193e221afcdc35582d34505797a7b8.tar.gz
semanticscuttle-8be81abfe6193e221afcdc35582d34505797a7b8.tar.bz2
merge master
Diffstat (limited to 'tests/Api')
-rw-r--r--tests/Api/ExportCsvTest.php25
-rw-r--r--tests/Api/OpenSearchTest.php76
-rw-r--r--tests/Api/PostsAddTest.php46
-rw-r--r--tests/Api/PostsDeleteTest.php25
-rw-r--r--tests/Api/PostsUpdateTest.php25
5 files changed, 90 insertions, 107 deletions
diff --git a/tests/Api/ExportCsvTest.php b/tests/Api/ExportCsvTest.php
index 2bff8a5..681f0de 100644
--- a/tests/Api/ExportCsvTest.php
+++ b/tests/Api/ExportCsvTest.php
@@ -12,14 +12,8 @@
* @license GPL http://www.gnu.org/licenses/gpl.html
* @link http://sourceforge.net/projects/semanticscuttle
*/
-
-require_once dirname(__FILE__) . '/../prepare.php';
require_once 'HTTP/Request2.php';
-if (!defined('PHPUnit_MAIN_METHOD')) {
- define('PHPUnit_MAIN_METHOD', 'Api_ExportCsvTest::main');
-}
-
/**
* Unit tests for the SemanticScuttle csv export API
*
@@ -40,21 +34,6 @@ class Api_ExportCsvTest extends TestBaseApi
/**
- * Used to run this test class standalone
- *
- * @return void
- */
- public static function main()
- {
- require_once 'PHPUnit/TextUI/TestRunner.php';
- PHPUnit_TextUI_TestRunner::run(
- new PHPUnit_Framework_TestSuite(__CLASS__)
- );
- }
-
-
-
- /**
* Test if authentication is required when sending no auth data
*/
public function testAuthWithoutAuthData()
@@ -280,8 +259,4 @@ class Api_ExportCsvTest extends TestBaseApi
return $ar;
}
}
-
-if (PHPUnit_MAIN_METHOD == 'Api_ExportCsvTest::main') {
- Api_ExportCsvTest::main();
-}
?> \ No newline at end of file
diff --git a/tests/Api/OpenSearchTest.php b/tests/Api/OpenSearchTest.php
new file mode 100644
index 0000000..050713b
--- /dev/null
+++ b/tests/Api/OpenSearchTest.php
@@ -0,0 +1,76 @@
+<?php
+
+
+class Api_OpenSearchTest extends TestBaseApi
+{
+ protected $urlPart = '';
+
+
+ public function testOpenSearchAvailable()
+ {
+ $req = $this->getRequest();
+ $xhtml = $req->send()->getBody();
+
+ $xml = simplexml_load_string($xhtml);
+ $xml->registerXPathNamespace('h', reset($xml->getDocNamespaces()));
+
+ $this->assertInstanceOf(
+ 'SimpleXMLElement', $xml,
+ 'SemanticScuttle main page XHTML could not be loaded - maybe invalid?'
+ );
+
+ $arElements = $xml->xpath(
+ '//h:head/h:link'
+ . '[@rel="search" and @type="application/opensearchdescription+xml"]'
+ );
+ $this->assertEquals(
+ 1, count($arElements),
+ 'OpenSearch link in HTML is missing'
+ );
+ $searchDescUrl = (string)$arElements[0]['href'];
+ $this->assertNotNull($searchDescUrl, 'Search description URL is empty');
+
+ $req = new HTTP_Request2($searchDescUrl);
+ $res = $req->send();
+ $this->assertEquals(
+ 200, $res->getStatus(),
+ 'HTTP response status code is not 200'
+ );
+
+ $this->assertEquals(
+ $GLOBALS['unittestUrl'] . 'api/opensearch.php',
+ $searchDescUrl,
+ 'OpenSearch URL found, but it is not the expected one.'
+ . ' It may be that you misconfigured the "unittestUrl" setting'
+ );
+ }
+
+ public function testOpenSearchContentType()
+ {
+ $res = $this->getRequest('api/opensearch.php')->send();
+ $this->assertEquals(
+ 'text/xml; charset=utf-8',
+ $res->getHeader('content-type')
+ );
+ }
+
+ public function testOpenSearchSearchUrl()
+ {
+ $xml = $this->getRequest('api/opensearch.php')->send()->getBody();
+ $x = simplexml_load_string($xml);
+ $x->registerXPathNamespace('os', reset($x->getDocNamespaces()));
+
+ $arElements = $x->xpath('//os:Url[@type="text/html"]');
+ $this->assertEquals(
+ 1, count($arElements),
+ 'Url in OpenSearch description is missing'
+ );
+ $this->assertEquals(
+ $GLOBALS['unittestUrl'] . 'search.php/all/{searchTerms}',
+ (string)$arElements[0]['template']
+ );
+ }
+
+}
+
+?> \ No newline at end of file
diff --git a/tests/Api/PostsAddTest.php b/tests/Api/PostsAddTest.php
index 3c1177f..24cc600 100644
--- a/tests/Api/PostsAddTest.php
+++ b/tests/Api/PostsAddTest.php
@@ -12,14 +12,8 @@
* @license GPL http://www.gnu.org/licenses/gpl.html
* @link http://sourceforge.net/projects/semanticscuttle
*/
-
-require_once dirname(__FILE__) . '/../prepare.php';
require_once 'HTTP/Request2.php';
-if (!defined('PHPUnit_MAIN_METHOD')) {
- define('PHPUnit_MAIN_METHOD', 'Api_PostsAddTest::main');
-}
-
/**
* Unit tests for the SemanticScuttle post addition API.
*
@@ -38,28 +32,6 @@ class Api_PostsAddTest extends TestBaseApi
/**
- * Used to run this test class standalone
- *
- * @return void
- */
- public static function main()
- {
- require_once 'PHPUnit/TextUI/TestRunner.php';
- PHPUnit_TextUI_TestRunner::run(
- new PHPUnit_Framework_TestSuite(__CLASS__)
- );
- }
-
-
- public function setUp()
- {
- parent::setUp();
- $this->bs->deleteAll();
- }
-
-
-
- /**
* Test if authentication is required when sending no auth data
*/
public function testAuthWithoutAuthData()
@@ -89,6 +61,8 @@ class Api_PostsAddTest extends TestBaseApi
*/
public function testAddBookmarkPost()
{
+ $this->bs->deleteAll();
+
$bmUrl = 'http://example.org/tag-1';
$bmTags = array('foo', 'bar', 'baz');
$bmDatetime = '2010-09-08T03:02:01Z';
@@ -149,6 +123,8 @@ TXT;
*/
public function testAddBookmarkGet()
{
+ $this->bs->deleteAll();
+
$bmUrl = 'http://example.org/tag-1';
$bmTags = array('foo', 'bar', 'baz');
$bmDatetime = '2010-09-08T03:02:01Z';
@@ -208,6 +184,8 @@ TXT;
*/
public function testUrlDescEnough()
{
+ $this->bs->deleteAll();
+
list($req, $uId) = $this->getAuthRequest();
$req->setMethod(HTTP_Request2::METHOD_POST);
$req->addPostParameter('url', 'http://example.org/tag2');
@@ -242,6 +220,8 @@ TXT;
*/
public function testUrlRequired()
{
+ $this->bs->deleteAll();
+
list($req, $uId) = $this->getAuthRequest();
$req->setMethod(HTTP_Request2::METHOD_POST);
//$req->addPostParameter('url', 'http://example.org/tag2');
@@ -276,6 +256,8 @@ TXT;
*/
public function testDescriptionRequired()
{
+ $this->bs->deleteAll();
+
list($req, $uId) = $this->getAuthRequest();
$req->setMethod(HTTP_Request2::METHOD_POST);
$req->addPostParameter('url', 'http://example.org/tag2');
@@ -310,6 +292,8 @@ TXT;
*/
public function testReplaceNo()
{
+ $this->bs->deleteAll();
+
$url = 'http://example.org/tag2';
$title1 = 'foo bar 1';
$title2 = 'bar 2 foo';
@@ -376,6 +360,8 @@ TXT;
*/
public function testReplaceYes()
{
+ $this->bs->deleteAll();
+
$url = 'http://example.org/tag2';
$title1 = 'foo bar 1';
$title2 = 'bar 2 foo';
@@ -625,8 +611,4 @@ TXT;
}
-
-if (PHPUnit_MAIN_METHOD == 'Api_PostsAddTest::main') {
- Api_PostsAddTest::main();
-}
?>
diff --git a/tests/Api/PostsDeleteTest.php b/tests/Api/PostsDeleteTest.php
index d9fb6cd..7ba1285 100644
--- a/tests/Api/PostsDeleteTest.php
+++ b/tests/Api/PostsDeleteTest.php
@@ -12,14 +12,8 @@
* @license GPL http://www.gnu.org/licenses/gpl.html
* @link http://sourceforge.net/projects/semanticscuttle
*/
-
-require_once dirname(__FILE__) . '/../prepare.php';
require_once 'HTTP/Request2.php';
-if (!defined('PHPUnit_MAIN_METHOD')) {
- define('PHPUnit_MAIN_METHOD', 'Api_PostsDeleteTest::main');
-}
-
/**
* Unit tests for the SemanticScuttle post deletion API.
*
@@ -38,21 +32,6 @@ class Api_PostsDeleteTest extends TestBaseApi
/**
- * Used to run this test class standalone
- *
- * @return void
- */
- public static function main()
- {
- require_once 'PHPUnit/TextUI/TestRunner.php';
- PHPUnit_TextUI_TestRunner::run(
- new PHPUnit_Framework_TestSuite(__CLASS__)
- );
- }
-
-
-
- /**
* Test if authentication is required when sending no auth data
*/
public function testAuthWithoutAuthData()
@@ -296,8 +275,4 @@ class Api_PostsDeleteTest extends TestBaseApi
}
}
-
-if (PHPUnit_MAIN_METHOD == 'Api_PostsDeleteTest::main') {
- Api_PostsDeleteTest::main();
-}
?> \ No newline at end of file
diff --git a/tests/Api/PostsUpdateTest.php b/tests/Api/PostsUpdateTest.php
index c497a55..51f8be2 100644
--- a/tests/Api/PostsUpdateTest.php
+++ b/tests/Api/PostsUpdateTest.php
@@ -12,14 +12,8 @@
* @license GPL http://www.gnu.org/licenses/gpl.html
* @link http://sourceforge.net/projects/semanticscuttle
*/
-
-require_once dirname(__FILE__) . '/../prepare.php';
require_once 'HTTP/Request2.php';
-if (!defined('PHPUnit_MAIN_METHOD')) {
- define('PHPUnit_MAIN_METHOD', 'Api_PostsUpdateTest::main');
-}
-
/**
* Unit tests for the SemanticScuttle last-update time API.
*
@@ -38,21 +32,6 @@ class Api_PostsUpdateTest extends TestBaseApi
/**
- * Used to run this test class standalone
- *
- * @return void
- */
- public static function main()
- {
- require_once 'PHPUnit/TextUI/TestRunner.php';
- PHPUnit_TextUI_TestRunner::run(
- new PHPUnit_Framework_TestSuite(__CLASS__)
- );
- }
-
-
-
- /**
* Test if authentication is required when sending no auth data
*/
public function testAuthWithoutAuthData()
@@ -128,8 +107,4 @@ class Api_PostsUpdateTest extends TestBaseApi
}
}
-
-if (PHPUnit_MAIN_METHOD == 'Api_PostsUpdateTest::main') {
- Api_PostsUpdateTest::main();
-}
?> \ No newline at end of file