Index: chrome/browser/ui/webui/sync_internals_ui_unittest.cc |
=================================================================== |
--- chrome/browser/ui/webui/sync_internals_ui_unittest.cc (revision 117871) |
+++ chrome/browser/ui/webui/sync_internals_ui_unittest.cc (working copy) |
@@ -28,18 +28,19 @@ |
using browser_sync::JsArgList; |
using browser_sync::JsEventDetails; |
using content::BrowserThread; |
+using content::WebContents; |
using testing::_; |
using testing::Mock; |
using testing::NiceMock; |
using testing::Return; |
using testing::StrictMock; |
-// Subclass of SyncInternalsUI to mock out ExecuteJavascript. |
-class TestSyncInternalsUI : public SyncInternalsUI { |
+// Subclass of WebUI to mock out ExecuteJavascript. |
+class TestSyncWebUI: public WebUI { |
public: |
- explicit TestSyncInternalsUI(TabContents* contents) |
- : SyncInternalsUI(contents) {} |
- virtual ~TestSyncInternalsUI() {} |
+ explicit TestSyncWebUI(WebContents* web_contents) |
+ : WebUI(web_contents) {} |
+ virtual ~TestSyncWebUI() {} |
MOCK_METHOD1(ExecuteJavascript, void(const string16&)); |
}; |
@@ -47,7 +48,7 @@ |
// Tests with non-NULL ProfileSyncService. |
class SyncInternalsUITestWithService : public ChromeRenderViewHostTestHarness { |
protected: |
- SyncInternalsUITestWithService() {} |
+ SyncInternalsUITestWithService() : sync_internals_ui_(NULL) {} |
virtual ~SyncInternalsUITestWithService() {} |
@@ -66,13 +67,15 @@ |
EXPECT_CALL(mock_js_controller_, AddJsEventHandler(_)); |
{ |
- // Needed by |test_sync_internals_ui_|'s constructor. The |
+ // Needed by |sync_internals_ui_|'s constructor. The |
// message loop is provided by ChromeRenderViewHostTestHarness. |
content::TestBrowserThread ui_thread_(BrowserThread::UI, |
MessageLoopForUI::current()); |
- // |test_sync_internals_ui_|'s constructor triggers all the |
+ // |sync_internals_ui_|'s constructor triggers all the |
// expectations above. |
- test_sync_internals_ui_.reset(new TestSyncInternalsUI(contents())); |
+ web_ui_.reset(new TestSyncWebUI(contents())); |
+ sync_internals_ui_ = new SyncInternalsUI(web_ui_.get()); |
+ web_ui_->SetController(sync_internals_ui_); |
} |
Mock::VerifyAndClearExpectations(profile_mock); |
@@ -82,36 +85,38 @@ |
virtual void TearDown() { |
Mock::VerifyAndClearExpectations(&mock_js_controller_); |
- // Called by |test_sync_internals_ui_|'s destructor. |
+ // Called by |sync_internals_ui_|'s destructor. |
EXPECT_CALL(mock_js_controller_, |
- RemoveJsEventHandler(test_sync_internals_ui_.get())); |
- test_sync_internals_ui_.reset(); |
+ RemoveJsEventHandler(sync_internals_ui_)); |
+ sync_internals_ui_ = NULL; |
+ web_ui_.reset(); |
ChromeRenderViewHostTestHarness::TearDown(); |
} |
StrictMock<browser_sync::MockJsController> mock_js_controller_; |
- scoped_ptr<TestSyncInternalsUI> test_sync_internals_ui_; |
+ scoped_ptr<TestSyncWebUI> web_ui_; |
+ SyncInternalsUI* sync_internals_ui_; |
}; |
TEST_F(SyncInternalsUITestWithService, HandleJsEvent) { |
- EXPECT_CALL(*test_sync_internals_ui_, |
+ EXPECT_CALL(*web_ui_, |
ExecuteJavascript( |
ASCIIToUTF16("chrome.sync.testMessage.fire({});"))); |
- test_sync_internals_ui_->HandleJsEvent("testMessage", JsEventDetails()); |
+ sync_internals_ui_->HandleJsEvent("testMessage", JsEventDetails()); |
} |
TEST_F(SyncInternalsUITestWithService, HandleJsReply) { |
EXPECT_CALL( |
- *test_sync_internals_ui_, |
+ *web_ui_, |
ExecuteJavascript( |
ASCIIToUTF16("chrome.sync.testMessage.handleReply(5,true);"))); |
ListValue args; |
args.Append(Value::CreateIntegerValue(5)); |
args.Append(Value::CreateBooleanValue(true)); |
- test_sync_internals_ui_->HandleJsReply("testMessage", JsArgList(&args)); |
+ sync_internals_ui_->HandleJsReply("testMessage", JsArgList(&args)); |
} |
TEST_F(SyncInternalsUITestWithService, OnWebUISendBasic) { |
@@ -122,15 +127,14 @@ |
EXPECT_CALL(mock_js_controller_, |
ProcessJsMessage(name, HasArgsAsList(args), _)); |
- test_sync_internals_ui_->controller()->OverrideHandleWebUIMessage( |
- GURL(), name, args); |
+ sync_internals_ui_->OverrideHandleWebUIMessage(GURL(), name, args); |
} |
// Tests with NULL ProfileSyncService. |
class SyncInternalsUITestWithoutService |
: public ChromeRenderViewHostTestHarness { |
protected: |
- SyncInternalsUITestWithoutService() {} |
+ SyncInternalsUITestWithoutService() : sync_internals_ui_(NULL) {} |
virtual ~SyncInternalsUITestWithoutService() {} |
@@ -143,39 +147,42 @@ |
ChromeRenderViewHostTestHarness::SetUp(); |
{ |
- // Needed by |test_sync_internals_ui_|'s constructor. The |
+ // Needed by |sync_internals_ui_|'s constructor. The |
// message loop is provided by ChromeRenderViewHostTestHarness. |
content::TestBrowserThread ui_thread_(BrowserThread::UI, |
MessageLoopForUI::current()); |
- // |test_sync_internals_ui_|'s constructor triggers all the |
+ // |sync_internals_ui_|'s constructor triggers all the |
// expectations above. |
- test_sync_internals_ui_.reset(new TestSyncInternalsUI(contents())); |
+ web_ui_.reset(new TestSyncWebUI(contents())); |
+ sync_internals_ui_ = new SyncInternalsUI(web_ui_.get()); |
+ web_ui_->SetController(sync_internals_ui_); |
} |
Mock::VerifyAndClearExpectations(profile_mock); |
} |
- scoped_ptr<TestSyncInternalsUI> test_sync_internals_ui_; |
+ scoped_ptr<TestSyncWebUI> web_ui_; |
+ SyncInternalsUI* sync_internals_ui_; |
}; |
TEST_F(SyncInternalsUITestWithoutService, HandleJsEvent) { |
- EXPECT_CALL(*test_sync_internals_ui_, |
+ EXPECT_CALL(*web_ui_, |
ExecuteJavascript( |
ASCIIToUTF16("chrome.sync.testMessage.fire({});"))); |
- test_sync_internals_ui_->HandleJsEvent("testMessage", JsEventDetails()); |
+ sync_internals_ui_->HandleJsEvent("testMessage", JsEventDetails()); |
} |
TEST_F(SyncInternalsUITestWithoutService, HandleJsReply) { |
EXPECT_CALL( |
- *test_sync_internals_ui_, |
+ *web_ui_, |
ExecuteJavascript( |
ASCIIToUTF16("chrome.sync.testMessage.handleReply(5,true);"))); |
ListValue args; |
args.Append(Value::CreateIntegerValue(5)); |
args.Append(Value::CreateBooleanValue(true)); |
- test_sync_internals_ui_->HandleJsReply( |
+ sync_internals_ui_->HandleJsReply( |
"testMessage", JsArgList(&args)); |
} |
@@ -185,8 +192,7 @@ |
args.Append(Value::CreateIntegerValue(5)); |
// Should drop the message. |
- test_sync_internals_ui_->controller()->OverrideHandleWebUIMessage( |
- GURL(), name, args); |
+ sync_internals_ui_->OverrideHandleWebUIMessage(GURL(), name, args); |
} |
// TODO(lipalani) - add a test case to test about:sync with a non null |
@@ -194,11 +200,11 @@ |
TEST_F(SyncInternalsUITestWithoutService, OnWebUISendGetAboutInfo) { |
const char kAboutInfoCall[] = |
"chrome.sync.getAboutInfo.handleReply({\"summary\":\"SYNC DISABLED\"});"; |
- EXPECT_CALL(*test_sync_internals_ui_, |
+ EXPECT_CALL(*web_ui_, |
ExecuteJavascript(ASCIIToUTF16(kAboutInfoCall))); |
ListValue args; |
- test_sync_internals_ui_->controller()->OverrideHandleWebUIMessage( |
+ sync_internals_ui_->OverrideHandleWebUIMessage( |
GURL(), "getAboutInfo", args); |
} |