public function testRedirectsToAuthServerWithScopeGivenCode() { $controller = new Controller(); # First generate a code $request = new Request(['response_type' => 'device_code', 'client_id' => 'x', 'scope' => 'foo']); $response = new Response(); $response = $controller->generate_code($request, $response); $data = json_decode($response->getContent()); $request = new Request(['code' => $data->user_code]); $response = new Response(); $response = $controller->verify_code($request, $response); $responseString = $response->__toString(); preg_match('/Location:\\s+([^\\s]+)/', $responseString, $location); $authURL = parse_url($location[1]); parse_str($authURL['query'], $params); $this->assertEquals('code', $params['response_type']); $this->assertEquals('x', $params['client_id']); $this->assertEquals('foo', $params['scope']); $this->assertEquals(Config::$baseURL . '/auth/redirect', $params['redirect_uri']); $this->assertNotEmpty($params['state']); }