/** @test */ public function it_can_retrieve_authorize_urls_for_providers() { $providerRegistry = new ProviderRegistry(); $session = M::mock('SocialNorm\\Session')->shouldIgnoreMissing(); $authorizeUrl = 'http://example.com/authorize'; $provider = new ProviderStub($authorizeUrl, M::mock('SocialNorm\\User')); $socialNorm = new SocialNorm($providerRegistry, $session, Request::createFromGlobals(), new StateGenerator()); $socialNorm->registerProvider('foo', $provider); $this->assertStringStartsWith($authorizeUrl, $socialNorm->authorize('foo')); }
/** @test */ public function it_works() { $authorizeUrl = 'http://example.com/authorize'; $user = M::mock('SocialNorm\\User'); $provider = new ProviderStub($authorizeUrl, $user); $session = new InMemorySession(); // Simulate first request $socialNorm = new SocialNorm(new ProviderRegistry(), $session, new Request([]), new StateGenerator()); $socialNorm->registerProvider('foo', $provider); $returnedUrl = $socialNorm->authorize('foo'); $this->assertStringStartsWith($authorizeUrl, $returnedUrl); // Simulate second request $state = $this->parseStateFromUrl($returnedUrl); $socialNorm = new SocialNorm(new ProviderRegistry(), $session, new Request(['state' => $state]), new StateGenerator()); $socialNorm->registerProvider('foo', $provider); $returnedUser = $socialNorm->getUser('foo'); $this->assertEquals($user, $returnedUser); }