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

Unified Diff: chrome/browser/cocoa/html_dialog_window_controller_unittest.mm

Issue 344008: Implemented most of HtmlDialogWindowController, which is a Cocoa port (Closed)
Patch Set: Added TODOs. Created 11 years, 2 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
« no previous file with comments | « chrome/browser/cocoa/html_dialog_window_controller.mm ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/html_dialog_window_controller_unittest.mm
diff --git a/chrome/browser/cocoa/html_dialog_window_controller_unittest.mm b/chrome/browser/cocoa/html_dialog_window_controller_unittest.mm
new file mode 100644
index 0000000000000000000000000000000000000000..de6ec22608a5a5a56ae7e0bb490c13a8271ef789
--- /dev/null
+++ b/chrome/browser/cocoa/html_dialog_window_controller_unittest.mm
@@ -0,0 +1,93 @@
+// Copyright (c) 2009 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.
+
+#import "chrome/browser/cocoa/html_dialog_window_controller.h"
+
+#include <string>
+#include <vector>
+
+#import <Cocoa/Cocoa.h>
+
+#include "base/gfx/size.h"
+#import "base/scoped_nsautorelease_pool.h"
+#include "base/sys_string_conversions.h"
+#include "chrome/browser/cocoa/cocoa_test_helper.h"
+#include "chrome/browser/dom_ui/dom_ui.h"
+#include "chrome/browser/dom_ui/html_dialog_ui.h"
+#include "chrome/test/browser_with_test_window_test.h"
+#include "googleurl/src/gurl.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+class MockDelegate : public HtmlDialogUIDelegate {
+public:
+ MOCK_CONST_METHOD0(IsDialogModal, bool());
+ MOCK_CONST_METHOD0(GetDialogTitle, std::wstring());
+ MOCK_CONST_METHOD0(GetDialogContentURL, GURL());
+ MOCK_CONST_METHOD1(GetDOMMessageHandlers,
+ void(std::vector<DOMMessageHandler*>*));
+ MOCK_CONST_METHOD1(GetDialogSize, void(gfx::Size*));
+ MOCK_CONST_METHOD0(GetDialogArgs, std::string());
+ MOCK_METHOD1(OnDialogClosed, void(const std::string& json_retval));
+};
+
+class HtmlDialogWindowControllerTest : public BrowserWithTestWindowTest {
+ public:
+ virtual void SetUp() {
+ BrowserWithTestWindowTest::SetUp();
+ title_ = L"Mock Title";
+ size_ = gfx::Size(50, 100);
+ gurl_ = GURL("");
+ }
+
+ protected:
+ std::wstring title_;
+ gfx::Size size_;
+ GURL gurl_;
+
+ // Order here is important.
+ CocoaTestHelper cocoa_helper_;
+ MockDelegate delegate_;
+};
+
+using ::testing::_;
+using ::testing::Return;
+using ::testing::SetArgumentPointee;
+
+// TODO(akalin): We can't test much more than the below without a real browser.
+// In particular, GetDOMMessageHandlers() and GetDialogArgs() are never called.
+// This should be fixed.
+
+TEST_F(HtmlDialogWindowControllerTest, showDialog) {
+ // We want to make sure html_dialog_window_controller below gets
+ // destroyed before cocoa_helper_ and delegate_, so we specify our
+ // own autorelease pool.
+ //
+ // TODO(dmaclach): Remove this once
+ // http://code.google.com/p/chromium/issues/detail?id=26133 is fixed.
+ base::ScopedNSAutoreleasePool release_pool;
+
+ EXPECT_CALL(delegate_, GetDialogTitle())
+ .WillOnce(Return(title_));
+ EXPECT_CALL(delegate_, GetDialogSize(_))
+ .WillOnce(SetArgumentPointee<0>(size_));
+ EXPECT_CALL(delegate_, GetDialogContentURL())
+ .WillOnce(Return(gurl_));
+ EXPECT_CALL(delegate_, OnDialogClosed(_))
+ .Times(1);
+
+ NSWindow* parent_window = cocoa_helper_.window();
+ HtmlDialogWindowController* html_dialog_window_controller =
+ [[HtmlDialogWindowController alloc] initWithDelegate:&delegate_
+ parentWindow:parent_window
+ browser:browser()];
+
+ [html_dialog_window_controller loadDialogContents];
+ [html_dialog_window_controller showWindow:nil];
+ [html_dialog_window_controller close];
+}
+
+} // namespace
« no previous file with comments | « chrome/browser/cocoa/html_dialog_window_controller.mm ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698