public function testSortByOption() { $user = User::newFromId(1); $user->setOption('flow-topiclist-sortby', ''); // reset flow state, so everything ($container['permissions']) // uses this particular $user \FlowHooks::resetFlowExtension(); Container::reset(); $container = Container::getContainer(); $container['user'] = $user; $ctx = $this->getMock('IContextSource'); $ctx->expects($this->any())->method('getUser')->will($this->returnValue($user)); $workflow = Workflow::create('discussion', Title::newFromText('Talk:Flow_QA')); $block = new TopicListBlock($workflow, Container::get('storage')); $block->init($ctx, 'view'); $res = $block->renderApi(array()); $this->assertEquals('newest', $res['sortby'], 'With no sortby defaults to newest'); $res = $block->renderApi(array('sortby' => 'foo')); $this->assertEquals('newest', $res['sortby'], 'With invalid sortby defaults to newest'); $res = $block->renderApi(array('sortby' => 'updated')); $this->assertEquals('updated', $res['sortby'], 'With sortby updated output changes to updated'); $res = $block->renderApi(array()); $this->assertEquals('newest', $res['sortby'], 'Sort still defaults to newest'); $res = $block->renderApi(array('sortby' => 'updated', 'savesortby' => '1')); $this->assertEquals('updated', $res['sortby'], 'Request saving sortby option'); $res = $block->renderApi(array()); $this->assertEquals('updated', $res['sortby'], 'Default sortby now changed to updated'); $res = $block->renderApi(array('sortby' => '')); $this->assertEquals('updated', $res['sortby'], 'Default sortby with blank sortby still uses user default'); }
public function setUp() { parent::setUp(); // reset flow state, so everything ($container['permissions']) // uses this particular $user \FlowHooks::resetFlowExtension(); Container::reset(); $container = Container::getContainer(); $container['user'] = User::newFromName('127.0.0.1', false); }
/** * @dataProvider onIRCLineUrlProvider */ public function testOnIRCLineUrl($message, $metadataGen, $expectedQuery) { $user = User::newFromName('127.0.0.1', false); // reset flow state, so everything ($container['permissions']) // uses this particular $user \FlowHooks::resetFlowExtension(); Container::reset(); $container = Container::getContainer(); $container['user'] = $user; $rc = new RecentChange(); $rc->mAttribs = array('rc_namespace' => 0, 'rc_title' => 'Main Page', 'rc_source' => RecentChangesListener::SRC_FLOW); $metadata = $metadataGen($user); Container::get('formatter.irclineurl')->associate($rc, $metadata); $url = 'unset'; $query = 'unset'; $this->assertTrue(FlowHooks::onIRCLineURL($url, $query, $rc)); $expectedQuery['title'] = $metadata['workflow']->getArticleTitle()->getPrefixedDBkey(); $parts = parse_url($url); $this->assertArrayHasKey('query', $parts, $url); parse_str($parts['query'], $queryParts); foreach ($expectedQuery as $key => $value) { $this->assertEquals($value, $queryParts[$key], "Query part {$key}"); } $this->assertEquals('', $query, $message); }