コード例 #1
0
 /**
  * @param $ip
  * @param $username
  * @param $userid
  * @param $display
  * @param $exception
  * @param $corruptRequest
  *
  * @throws \Exception
  *
  * @dataProvider ipOptions
  */
 public function testRetrieve($ip, $username, $userid, $display, $exception = null, $corruptRequest = false)
 {
     if ($exception !== null) {
         $this->setExpectedException('\\Exception', $exception);
     }
     $cnf = [];
     $cnf['192.168.0.10'] = ['username' => 'bob', 'userid' => 3, 'display' => 'Bobby'];
     $cnf['192.168.0.11'] = ['userid' => 3, 'display' => 'Bobby'];
     $cnf['192.168.0.12'] = ['username' => 'bob', 'display' => 'Bobby'];
     $cnf['tester'] = ['username' => 'pet', 'userid' => 2, 'display' => 'Dog'];
     $cnf['192.168.0.20'] = ['alias' => 'tester'];
     $configProvider = new TestConfigProvider();
     $authSection = new ConfigSection('ipauth', $cnf);
     $configProvider->addSection($authSection);
     $cubex = new Cubex();
     $cubex->configure($configProvider);
     $request = new Request();
     $request->server->set('REMOTE_ADDR', $ip);
     if ($corruptRequest) {
         $cubex->instance('request', 'invalid');
     } else {
         $cubex->instance('request', $request);
     }
     $auth = new IPAuthProvider();
     $auth->setCubex($cubex);
     $user = $auth->login('test', 'test');
     if ($username === null) {
         $this->assertNull($user);
     } else {
         $this->assertEquals($username, $user->getUsername());
         $this->assertEquals($userid, $user->getUserId());
         $this->assertEquals($display, $user->getProperty('display'));
     }
 }