/**
  * @covers SpecialSearch::load
  * @dataProvider provideSearchOptionsTests
  * @param $requested Array Request parameters. For example array( 'ns5' => true, 'ns6' => true). NULL to use default options.
  * @param $userOptions Array User options to test with. For example array('searchNs5' => 1 );. NULL to use default options.
  * @param $expectedProfile An expected search profile name
  * @param $expectedNs Array Expected namespaces
  */
 function testProfileAndNamespaceLoading($requested, $userOptions, $expectedProfile, $expectedNS, $message = 'Profile name and namespaces mismatches!')
 {
     $context = new RequestContext();
     $context->setUser($this->newUserWithSearchNS($userOptions));
     /*
     		$context->setRequest( new FauxRequest( array(
     			'ns5'=>true,
     			'ns6'=>true,
     		) ));
     */
     $context->setRequest(new FauxRequest($requested));
     $search = new SpecialSearch();
     $search->setContext($context);
     $search->load();
     /**
      * Verify profile name and namespace in the same assertion to make
      * sure we will be able to fully compare the above code. PHPUnit stop
      * after an assertion fail.
      */
     $this->assertEquals(array('ProfileName' => $expectedProfile, 'Namespaces' => $expectedNS), array('ProfileName' => $search->getProfile(), 'Namespaces' => $search->getNamespaces()), $message);
 }