Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: chrome/browser/extensions/api/identity/web_auth_flow_unittest.cc

Issue 14081014: Identity API: Change WebAuthFlow to use <webview> instead of a normal browser pop-up. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: chrome.identity side-by-side with chrome.experimental.identity Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/identity/web_auth_flow_unittest.cc
diff --git a/chrome/browser/extensions/api/identity/web_auth_flow_unittest.cc b/chrome/browser/extensions/api/identity/web_auth_flow_unittest.cc
deleted file mode 100644
index 5d376ca0014f4669bc743ead847e07b1c1c662c8..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/identity/web_auth_flow_unittest.cc
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/message_loop.h"
-#include "chrome/browser/extensions/api/identity/web_auth_flow.h"
-#include "chrome/browser/ui/host_desktop.h"
-#include "chrome/test/base/chrome_render_view_host_test_harness.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/test/test_browser_thread.h"
-#include "content/public/test/web_contents_tester.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using content::BrowserThread;
-using content::TestBrowserThread;
-using content::WebContents;
-using content::WebContentsTester;
-using extensions::WebAuthFlow;
-using testing::Return;
-using testing::ReturnRef;
-
-namespace {
-
-class MockDelegate : public WebAuthFlow::Delegate {
- public:
- MOCK_METHOD1(OnAuthFlowFailure, void(WebAuthFlow::Failure failure));
- MOCK_METHOD1(OnAuthFlowURLChange, void(const GURL& redirect_url));
-};
-
-class MockWebAuthFlow : public WebAuthFlow {
- public:
- MockWebAuthFlow(
- WebAuthFlow::Delegate* delegate,
- Profile* profile,
- const GURL& provider_url,
- bool interactive)
- : WebAuthFlow(
- delegate,
- profile,
- provider_url,
- interactive ? WebAuthFlow::INTERACTIVE : WebAuthFlow::SILENT,
- gfx::Rect(),
- chrome::GetActiveDesktop()),
- profile_(profile),
- web_contents_(NULL),
- window_shown_(false) { }
-
- virtual WebContents* CreateWebContents() OVERRIDE {
- CHECK(!web_contents_);
- web_contents_ = WebContentsTester::CreateTestWebContents(profile_, NULL);
- return web_contents_;
- }
-
- virtual void ShowAuthFlowPopup() OVERRIDE {
- window_shown_ = true;
- }
-
- bool HasWindow() const {
- return window_shown_;
- }
-
- void DestroyWebContents() {
- CHECK(web_contents_);
- delete web_contents_;
- }
-
- virtual ~MockWebAuthFlow() { }
-
- private:
- Profile* profile_;
- WebContents* web_contents_;
- bool window_shown_;
-};
-
-} // namespace
-
-class WebAuthFlowTest : public ChromeRenderViewHostTestHarness {
- protected:
- WebAuthFlowTest()
- : thread_(BrowserThread::UI, &message_loop_) {
- }
-
- virtual void SetUp() {
- ChromeRenderViewHostTestHarness::SetUp();
- }
-
- virtual void TearDown() {
- // |flow_| must be reset before ChromeRenderViewHostTestHarness::TearDown(),
- // because |flow_| deletes the WebContents it owns via
- // MessageLoop::DeleteSoon().
- flow_.reset();
- ChromeRenderViewHostTestHarness::TearDown();
- }
-
- void CreateAuthFlow(const GURL& url,
- bool interactive) {
- flow_.reset(new MockWebAuthFlow(
- &delegate_, profile(), url, interactive));
- }
-
- WebAuthFlow* flow_base() {
- return flow_.get();
- }
-
- void CallBeforeUrlLoaded(const GURL& url) {
- flow_base()->BeforeUrlLoaded(url);
- }
-
- void CallAfterUrlLoaded() {
- flow_base()->AfterUrlLoaded();
- }
-
- TestBrowserThread thread_;
- MockDelegate delegate_;
- scoped_ptr<MockWebAuthFlow> flow_;
-};
-
-TEST_F(WebAuthFlowTest, SilentRedirectToChromiumAppUrlNonInteractive) {
- GURL url("https://accounts.google.com/o/oauth2/auth");
- GURL result("https://abcdefghij.chromiumapp.org/google_cb");
-
- CreateAuthFlow(url, false);
- EXPECT_CALL(delegate_, OnAuthFlowURLChange(result)).Times(1);
- flow_->Start();
- CallBeforeUrlLoaded(result);
-}
-
-TEST_F(WebAuthFlowTest, SilentRedirectToChromiumAppUrlInteractive) {
- GURL url("https://accounts.google.com/o/oauth2/auth");
- GURL result("https://abcdefghij.chromiumapp.org/google_cb");
-
- CreateAuthFlow(url, true);
- EXPECT_CALL(delegate_, OnAuthFlowURLChange(result)).Times(1);
- flow_->Start();
- CallBeforeUrlLoaded(result);
-}
-
-TEST_F(WebAuthFlowTest, SilentRedirectToChromeExtensionSchemeUrl) {
- GURL url("https://accounts.google.com/o/oauth2/auth");
- GURL result("chrome-extension://abcdefghij/google_cb");
-
- CreateAuthFlow(url, true);
- EXPECT_CALL(delegate_, OnAuthFlowURLChange(result)).Times(1);
- flow_->Start();
- CallBeforeUrlLoaded(result);
-}
-
-TEST_F(WebAuthFlowTest, NeedsUIButNonInteractive) {
- GURL url("https://accounts.google.com/o/oauth2/auth");
-
- CreateAuthFlow(url, false);
- EXPECT_CALL(
- delegate_, OnAuthFlowFailure(WebAuthFlow::INTERACTION_REQUIRED)).Times(1);
- flow_->Start();
- CallAfterUrlLoaded();
-}
-
-TEST_F(WebAuthFlowTest, UIResultsInSuccess) {
- GURL url("https://accounts.google.com/o/oauth2/auth");
- GURL result("chrome-extension://abcdefghij/google_cb");
-
- CreateAuthFlow(url, true);
- EXPECT_CALL(delegate_, OnAuthFlowURLChange(result)).Times(1);
- flow_->Start();
- CallAfterUrlLoaded();
- EXPECT_TRUE(flow_->HasWindow());
- CallBeforeUrlLoaded(result);
-}
-
-TEST_F(WebAuthFlowTest, UIClosedByUser) {
- GURL url("https://accounts.google.com/o/oauth2/auth");
- GURL result("chrome-extension://abcdefghij/google_cb");
-
- CreateAuthFlow(url, true);
- EXPECT_CALL(
- delegate_, OnAuthFlowFailure(WebAuthFlow::WINDOW_CLOSED)).Times(1);
- flow_->Start();
- CallAfterUrlLoaded();
- EXPECT_TRUE(flow_->HasWindow());
- flow_->DestroyWebContents();
-}

Powered by Google App Engine
This is Rietveld 408576698