aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2011-05-02 09:03:35 +0200
committerChristian Weiske <cweiske@cweiske.de>2011-05-02 09:03:35 +0200
commitf629d081ddf52e3cb83ffbfc973a97adc691790c (patch)
treef2c55e745546364fa0aa116b9e68bbf23ef83d9d
parent6b02db7920f09cafadc181bbaed283d5adf6cee6 (diff)
downloadsemanticscuttle-f629d081ddf52e3cb83ffbfc973a97adc691790c.tar.gz
semanticscuttle-f629d081ddf52e3cb83ffbfc973a97adc691790c.tar.bz2
make privacy tests clearer
-rw-r--r--tests/Api/PostsAddTest.php75
-rw-r--r--tests/TestBaseApi.php3
2 files changed, 31 insertions, 47 deletions
diff --git a/tests/Api/PostsAddTest.php b/tests/Api/PostsAddTest.php
index ddaa1fd..3c1177f 100644
--- a/tests/Api/PostsAddTest.php
+++ b/tests/Api/PostsAddTest.php
@@ -423,8 +423,8 @@ TXT;
/**
- * Test that a default privacy setting of 2 (Private) is used in adding
- * a bookmark.
+ * Test that a default privacy setting of 2 (Private) is used in adding
+ * a bookmark.
*/
public function testDefaultPrivacyPrivate()
{
@@ -445,8 +445,8 @@ TXT;
/**
- * Test that a default privacy setting of 0 (Public) is used in adding
- * a bookmark.
+ * Test that a default privacy setting of 0 (Public) is used in adding
+ * a bookmark.
*/
public function testDefaultPrivacyPublic()
{
@@ -490,7 +490,7 @@ TXT;
$bm = reset($bms['bookmarks']);
$bmId = $bm['bId'];
- $reqUrl = $GLOBALS['unittestUrl'] . 'edit.php/' . $bmId . '?unittestMode=1';
+ $reqUrl = $GLOBALS['unittestUrl'] . 'edit.php/' . $bmId . '?unittestMode=1';
$req2 = new HTTP_Request2($reqUrl, HTTP_Request2::METHOD_POST);
$req2->setCookieJar($cookies);
$req2->addPostParameter('address', 'http://www.example.org/testdefaultprivacyposts_edit');
@@ -502,7 +502,7 @@ TXT;
$bm = $this->bs->getBookmark($bmId);
$this->assertEquals('2', $bm['bStatus']);
- }//end testDefaultPrivacyEdit
+ }//end testDefaultPrivacyEdit
/**
@@ -550,15 +550,15 @@ TXT;
$this->assertEquals(3, count($bms['bookmarks']));
$bm = reset($bms['bookmarks']);
$this->assertEquals('2', $bm['bStatus']);
- }//end testDefaultPrivacyImport
+ }//end testDefaultPrivacyImport
/**
- * Test that the default privacy setting is selected in the Privacy
- * drop-down list when an existing bookmark is accessed with bookmarks.php
- * and the get action.
+ * Test that the default privacy setting is selected in the Privacy
+ * drop-down list when adding a new bookmark, sending the form and
+ * missing the title and the privacy setting.
*/
- public function testDefaultPrivacyBookmarksGet()
+ public function testDefaultPrivacyBookmarksAddMissingTitleMissingPrivacy()
{
$this->setUnittestConfig(
array('defaults' => array('privacy' => 2))
@@ -574,7 +574,7 @@ TXT;
$bms = $this->bs->getBookmarks(0, null, $uId);
$this->assertEquals(1, count($bms['bookmarks']));
$user = $this->us->getUser($uId);
- $reqUrl = $GLOBALS['unittestUrl'] . 'bookmarks.php/' . $user['username'] . '?action=get' . '&unittestMode=1';
+ $reqUrl = $GLOBALS['unittestUrl'] . 'bookmarks.php/' . $user['username'] . '?action=get' . '&unittestMode=1';
list($req, $uId) = $this->getAuthRequest('?unittestMode=1');
$req->setMethod(HTTP_Request2::METHOD_POST);
@@ -595,51 +595,32 @@ TXT;
/**
- * Test that the default privacy setting is selected in the Privacy
- * drop-down list when an existing bookmark is accessed with bookmarks.php
- * and the add action.
+ * Test that the default privacy setting is selected in the Privacy
+ * drop-down list when a new bookmark is being created.
*/
public function testDefaultPrivacyBookmarksAdd()
{
$this->setUnittestConfig(
array('defaults' => array('privacy' => 1))
);
- list($req, $uId) = $this->getAuthRequest('?unittestMode=1');
- $req->setMethod(HTTP_Request2::METHOD_POST);
- $req->addPostParameter('url', 'http://www.example.org/testdefaultprivacyposts_bookmarksadd');
- $req->addPostParameter('description', 'Test bookmark 2 for default privacy.');
- $req->addPostParameter('status', '0');
- $req->send();
- $bms = $this->bs->getBookmarks(0, null, $uId);
- $this->assertEquals(1, count($bms['bookmarks']));
- $bm = reset($bms['bookmarks']);
- $bmId = $bm['bId'];
- $oldUid = $uId;
+ list($req, $uId) = $this->getLoggedInRequest('?unittestMode=1');
+
$user = $this->us->getUser($uId);
- $userId = $user['username'];
- $reqUrl = $GLOBALS['unittestUrl'] . 'bookmarks.php/' . $userId . '?action=add' . '&unittestMode=1';
- list($req, $uId) = $this->getAuthRequest('?unittestMode=1');
- $req->setMethod(HTTP_Request2::METHOD_POST);
+ $reqUrl = $GLOBALS['unittestUrl'] . 'bookmarks.php/'
+ . $user['username'] . '?action=add' . '&unittestMode=1';
$req->setUrl($reqUrl);
- $testcookiekey = md5($GLOBALS['dbname'].$GLOBALS['tableprefix']).'-login';
- $userinfo = $this->us->getUser($oldUid);
- $testcookiepassword = $userinfo['password'];
- $testusername = $userinfo['username'];
- $testcookievalue = $oldUid . ':' . md5($testusername . $testcookiepassword);
- $req->setCookieJar(true);
- $req->addCookie($testcookiekey, $testcookievalue);
- $req->addPostParameter('submitted', '1');
+ $req->setMethod(HTTP_Request2::METHOD_GET);
$response = $req->send();
$response_body = $response->getBody();
- $start = strpos($response_body, 'Privacy');
- $end = strpos($response_body, 'referrer');
- $length = $end - $start;
- $response_body = substr($response_body, $start, $length);
- $start = strpos($response_body, 'selected');
- $start = $start - 3;
- $length = 1;
- $selected_privacy = substr($response_body, $start, $length);
- $this->assertEquals('1', $selected_privacy);
+ $this->assertNotEquals('', $response_body, 'Response is empty');
+
+ $x = simplexml_load_string($response_body);
+ $ns = $x->getDocNamespaces();
+ $x->registerXPathNamespace('ns', reset($ns));
+
+ $elements = $x->xpath('//ns:select[@name="status"]/ns:option[@selected="selected"]');
+ $this->assertEquals(1, count($elements), 'No selected status option found');
+ $this->assertEquals(1, (string)$elements[0]['value']);
}//end testDefaultPrivacyBookmarksAdd
diff --git a/tests/TestBaseApi.php b/tests/TestBaseApi.php
index b381dad..9759db5 100644
--- a/tests/TestBaseApi.php
+++ b/tests/TestBaseApi.php
@@ -89,6 +89,8 @@ class TestBaseApi extends TestBase
* the request object with authentication details, so that
* the user is logged in.
*
+ * Only usable for API requests, not "normal" HTTP page requests
+ *
* @param string $urlSuffix Suffix for the URL
* @param mixed $auth If user authentication is needed (true/false)
* or array with username and password
@@ -96,6 +98,7 @@ class TestBaseApi extends TestBase
* @return array(HTTP_Request2, integer) HTTP request object and user id
*
* @uses getRequest()
+ * @see getLoggedInRequest()
*/
protected function getAuthRequest($urlSuffix = null, $auth = true)
{