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

Side by Side Diff: chrome/browser/intents/register_intent_handler_infobar_delegate_unittest.cc

Issue 7892007: Add ChromeRenderViewHostTestHarness to get rid of the dependency from RVHTH to profile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix mac Created 9 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h" 7 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h"
8 #include "chrome/browser/intents/web_intents_registry.h" 8 #include "chrome/browser/intents/web_intents_registry.h"
9 #include "chrome/browser/intents/web_intents_registry_factory.h" 9 #include "chrome/browser/intents/web_intents_registry_factory.h"
10 #include "chrome/browser/intents/web_intent_data.h" 10 #include "chrome/browser/intents/web_intent_data.h"
11 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
11 #include "chrome/test/base/testing_profile.h" 12 #include "chrome/test/base/testing_profile.h"
12 #include "content/browser/browser_thread.h" 13 #include "content/browser/browser_thread.h"
13 #include "content/browser/renderer_host/test_render_view_host.h"
14 #include "content/browser/site_instance.h" 14 #include "content/browser/site_instance.h"
15 #include "content/browser/tab_contents/test_tab_contents.h" 15 #include "content/browser/tab_contents/test_tab_contents.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 18
19 namespace { 19 namespace {
20 20
21 class MockWebIntentsRegistry : public WebIntentsRegistry { 21 class MockWebIntentsRegistry : public WebIntentsRegistry {
22 public: 22 public:
23 MOCK_METHOD1(RegisterIntentProvider, void(const WebIntentData&)); 23 MOCK_METHOD1(RegisterIntentProvider, void(const WebIntentData&));
24 }; 24 };
25 25
26 ProfileKeyedService* BuildMockWebIntentsRegistry(Profile* profile) { 26 ProfileKeyedService* BuildMockWebIntentsRegistry(Profile* profile) {
27 return new MockWebIntentsRegistry; 27 return new MockWebIntentsRegistry;
28 } 28 }
29 29
30 MockWebIntentsRegistry* BuildForProfile(Profile* profile) { 30 MockWebIntentsRegistry* BuildForProfile(Profile* profile) {
31 return static_cast<MockWebIntentsRegistry*>( 31 return static_cast<MockWebIntentsRegistry*>(
32 WebIntentsRegistryFactory::GetInstance()->SetTestingFactoryAndUse( 32 WebIntentsRegistryFactory::GetInstance()->SetTestingFactoryAndUse(
33 profile, BuildMockWebIntentsRegistry)); 33 profile, BuildMockWebIntentsRegistry));
34 } 34 }
35 35
36 class RegisterIntentHandlerInfoBarDelegateTest 36 class RegisterIntentHandlerInfoBarDelegateTest
37 : public RenderViewHostTestHarness { 37 : public ChromeRenderViewHostTestHarness {
38 protected: 38 protected:
39 RegisterIntentHandlerInfoBarDelegateTest() 39 RegisterIntentHandlerInfoBarDelegateTest()
40 : ui_thread_(BrowserThread::UI, MessageLoopForUI::current()) {} 40 : ui_thread_(BrowserThread::UI, MessageLoopForUI::current()) {}
41 41
42 virtual void SetUp() { 42 virtual void SetUp() {
43 RenderViewHostTestHarness::SetUp(); 43 ChromeRenderViewHostTestHarness::SetUp();
44 44
45 profile_.reset(new TestingProfile); 45 profile()->CreateWebDataService(false);
46 profile_->CreateWebDataService(false);
47 46
48 SiteInstance* instance = SiteInstance::CreateSiteInstance(profile_.get()); 47 SiteInstance* instance = SiteInstance::CreateSiteInstance(profile());
49 tab_contents_.reset(new TestTabContents(profile_.get(), instance)); 48 tab_contents_.reset(new TestTabContents(profile(), instance));
50 49
51 web_intents_registry_ = BuildForProfile(profile_.get()); 50 web_intents_registry_ = BuildForProfile(profile());
52 } 51 }
53 52
54 virtual void TearDown() { 53 virtual void TearDown() {
55 tab_contents_.reset(); 54 tab_contents_.reset();
56 web_intents_registry_ = NULL; 55 web_intents_registry_ = NULL;
57 profile_.reset();
58 56
59 RenderViewHostTestHarness::TearDown(); 57 ChromeRenderViewHostTestHarness::TearDown();
60 } 58 }
61 59
62 scoped_ptr<TestTabContents> tab_contents_; 60 scoped_ptr<TestTabContents> tab_contents_;
63 MockWebIntentsRegistry* web_intents_registry_; 61 MockWebIntentsRegistry* web_intents_registry_;
64 62
65 private: 63 private:
66 BrowserThread ui_thread_; 64 BrowserThread ui_thread_;
67 scoped_ptr<TestingProfile> profile_;
68 65
69 DISALLOW_COPY_AND_ASSIGN(RegisterIntentHandlerInfoBarDelegateTest); 66 DISALLOW_COPY_AND_ASSIGN(RegisterIntentHandlerInfoBarDelegateTest);
70 }; 67 };
71 68
72 TEST_F(RegisterIntentHandlerInfoBarDelegateTest, Accept) { 69 TEST_F(RegisterIntentHandlerInfoBarDelegateTest, Accept) {
73 WebIntentData intent; 70 WebIntentData intent;
74 intent.service_url = GURL("google.com"); 71 intent.service_url = GURL("google.com");
75 intent.action = ASCIIToUTF16("http://webintents.org/share"); 72 intent.action = ASCIIToUTF16("http://webintents.org/share");
76 intent.type = ASCIIToUTF16("text/url"); 73 intent.type = ASCIIToUTF16("text/url");
77 RegisterIntentHandlerInfoBarDelegate delegate(tab_contents_.get(), intent); 74 RegisterIntentHandlerInfoBarDelegate delegate(tab_contents_.get(), intent);
78 75
79 EXPECT_CALL(*web_intents_registry_, RegisterIntentProvider(intent)); 76 EXPECT_CALL(*web_intents_registry_, RegisterIntentProvider(intent));
80 delegate.Accept(); 77 delegate.Accept();
81 } 78 }
82 79
83 } // namespace 80 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698