Ticket #2732: add some regression tests for groups to OStatus remote-tests.php
Note that these tests won't pass on master branch yet as the join/leave don't work, and there's a bug in Activity parsing which prevents interop between new feeds and old remote subscribers (both fixed in this branch).
This commit is contained in:
parent
f2a43769e7
commit
7ec456198a
|
@ -72,6 +72,8 @@ class OStatusTester extends TestBase
|
||||||
$base = 'test' . mt_rand(1, 1000000);
|
$base = 'test' . mt_rand(1, 1000000);
|
||||||
$this->pub = new SNTestClient($this->a, 'pub' . $base, 'pw-' . mt_rand(1, 1000000), $timeout);
|
$this->pub = new SNTestClient($this->a, 'pub' . $base, 'pw-' . mt_rand(1, 1000000), $timeout);
|
||||||
$this->sub = new SNTestClient($this->b, 'sub' . $base, 'pw-' . mt_rand(1, 1000000), $timeout);
|
$this->sub = new SNTestClient($this->b, 'sub' . $base, 'pw-' . mt_rand(1, 1000000), $timeout);
|
||||||
|
|
||||||
|
$this->group = 'group' . $base;
|
||||||
}
|
}
|
||||||
|
|
||||||
function run()
|
function run()
|
||||||
|
@ -163,6 +165,39 @@ class OStatusTester extends TestBase
|
||||||
$this->assertFalse($this->pub->hasSubscriber($this->sub->getProfileUri()));
|
$this->assertFalse($this->pub->hasSubscriber($this->sub->getProfileUri()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testCreateGroup()
|
||||||
|
{
|
||||||
|
$this->groupUrl = $this->pub->createGroup($this->group);
|
||||||
|
$this->assertTrue(!empty($this->groupUrl));
|
||||||
|
}
|
||||||
|
|
||||||
|
function testJoinGroup()
|
||||||
|
{
|
||||||
|
#$this->assertFalse($this->sub->inGroup($this->groupUrl));
|
||||||
|
$this->sub->joinGroup($this->groupUrl);
|
||||||
|
#$this->assertTrue($this->sub->inGroup($this->groupUrl));
|
||||||
|
}
|
||||||
|
|
||||||
|
function testLocalGroupPost()
|
||||||
|
{
|
||||||
|
$post = $this->pub->post("Group post from local to !{$this->group}, should go out over push.");
|
||||||
|
$this->assertNotEqual('', $post);
|
||||||
|
$this->sub->assertReceived($post);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testRemoteGroupPost()
|
||||||
|
{
|
||||||
|
$post = $this->sub->post("Group post from remote to !{$this->group}, should come in over salmon.");
|
||||||
|
$this->assertNotEqual('', $post);
|
||||||
|
$this->pub->assertReceived($post);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testLeaveGroup()
|
||||||
|
{
|
||||||
|
#$this->assertTrue($this->sub->inGroup($this->groupUrl));
|
||||||
|
$this->sub->leaveGroup($this->groupUrl);
|
||||||
|
#$this->assertFalse($this->sub->inGroup($this->groupUrl));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SNTestClient extends TestBase
|
class SNTestClient extends TestBase
|
||||||
|
@ -534,6 +569,63 @@ class SNTestClient extends TestBase
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a group on this site.
|
||||||
|
*
|
||||||
|
* @param string $nickname
|
||||||
|
* @param array $options
|
||||||
|
* @return string: profile URL for the group
|
||||||
|
*/
|
||||||
|
function createGroup($nickname, $options=array()) {
|
||||||
|
$this->log("Creating group as %s on %s: %s",
|
||||||
|
$this->username,
|
||||||
|
$this->basepath,
|
||||||
|
$nickname);
|
||||||
|
|
||||||
|
$data = $this->api('statusnet/groups/create', 'json',
|
||||||
|
array_merge(array('nickname' => $nickname), $options));
|
||||||
|
$url = $data['url'];
|
||||||
|
|
||||||
|
if ($url) {
|
||||||
|
$this->log(' created as %s', $url);
|
||||||
|
} else {
|
||||||
|
$this->log(' failed? %s', var_export($data, true));
|
||||||
|
}
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
function groupInfo($nickname) {
|
||||||
|
$data = $this->api('statusnet/groups/show', 'json', array(
|
||||||
|
'id' => $nickname
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Join a group.
|
||||||
|
*
|
||||||
|
* @param string $group nickname or URL
|
||||||
|
*/
|
||||||
|
function joinGroup($group) {
|
||||||
|
$this->post('join ' . $group);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Leave a group.
|
||||||
|
*
|
||||||
|
* @param string $group nickname or URL
|
||||||
|
*/
|
||||||
|
function leaveGroup($group) {
|
||||||
|
$this->post('drop ' . $group);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param string $nickname
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
function inGroup($nickname) {
|
||||||
|
// @todo
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @fixme switch to commandline.inc?
|
// @fixme switch to commandline.inc?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user