summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-27 20:15:35 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-27 20:15:35 +0000
commit7745b82920b6a761f316c78a85e7af8742434f1c (patch)
treed942f01dd45823d55c223dcfb868012d8194c82a /chrome/test
parent41910d1c4de903e0337ae41a9c835d918f8e264a (diff)
downloadchromium_src-7745b82920b6a761f316c78a85e7af8742434f1c.zip
chromium_src-7745b82920b6a761f316c78a85e7af8742434f1c.tar.gz
chromium_src-7745b82920b6a761f316c78a85e7af8742434f1c.tar.bz2
Re-land this from earlier... unit tests no longer crash.
Extract a cross platform LocationBar interface. Adds a TestLocationBar object that unit tests can use to mock the location bar (fixes NULL deref). Review URL: http://codereview.chromium.org/18851 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8745 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r--chrome/test/test_browser_window.h8
-rw-r--r--chrome/test/test_location_bar.h53
-rw-r--r--chrome/test/unit/unittests.vcproj4
3 files changed, 63 insertions, 2 deletions
diff --git a/chrome/test/test_browser_window.h b/chrome/test/test_browser_window.h
index 29ab2bc..fef495a 100644
--- a/chrome/test/test_browser_window.h
+++ b/chrome/test/test_browser_window.h
@@ -8,6 +8,7 @@
#include "chrome/browser/browser.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/views/tabs/tab_strip.h"
+#include "chrome/test/test_location_bar.h"
// An implementation of BrowserWindow used for testing. TestBrowserWindow only
// contains a valid TabStrip, all other getters return NULL.
@@ -34,8 +35,9 @@ class TestBrowserWindow : public BrowserWindow {
virtual void SetStarredState(bool is_starred) {}
virtual gfx::Rect GetNormalBounds() const { return gfx::Rect(); }
virtual bool IsMaximized() { return false; }
- virtual LocationBarView* GetLocationBarView() const { return NULL; }
- virtual BookmarkBarView* GetBookmarkBarView() { return NULL; }
+ virtual LocationBar* GetLocationBar() const {
+ return const_cast<TestLocationBar*>(&location_bar_);
+ }
virtual void UpdateStopGoState(bool is_loading) {}
virtual void UpdateToolbar(TabContents* contents,
bool should_restore_state) {}
@@ -62,6 +64,8 @@ class TestBrowserWindow : public BrowserWindow {
private:
TabStrip tab_strip_;
+ TestLocationBar location_bar_;
+
DISALLOW_COPY_AND_ASSIGN(TestBrowserWindow);
};
diff --git a/chrome/test/test_location_bar.h b/chrome/test/test_location_bar.h
new file mode 100644
index 0000000..6f9b2ab
--- /dev/null
+++ b/chrome/test/test_location_bar.h
@@ -0,0 +1,53 @@
+// 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.
+
+#ifndef CHROME_TEST_TEST_LOCATION_BAR_H_
+#define CHROME_TEST_TEST_LOCATION_BAR_H_
+
+#include "chrome/browser/location_bar.h"
+#include "chrome/common/page_transition_types.h"
+#include "webkit/glue/window_open_disposition.h"
+
+class TestLocationBar : public LocationBar {
+ public:
+ TestLocationBar()
+ : disposition_(CURRENT_TAB),
+ transition_(PageTransition::LINK) {
+ }
+
+ void set_input_string(const std::wstring& input_string) {
+ input_string_ = input_string;
+ }
+ void set_disposition(WindowOpenDisposition disposition) {
+ disposition_ = disposition;
+ }
+ void set_transition(PageTransition::Type transition) {
+ transition_ = transition;
+ }
+
+ // Overridden from LocationBar:
+ virtual void ShowFirstRunBubble() {}
+ virtual std::wstring GetInputString() const { return input_string_; }
+ virtual WindowOpenDisposition GetWindowOpenDisposition() const {
+ return disposition_;
+ }
+ virtual PageTransition::Type GetPageTransition() const { return transition_; }
+ virtual void AcceptInput() {}
+ virtual void FocusLocation() {}
+ virtual void FocusSearch() {}
+ virtual void SaveStateToContents(TabContents* contents) {}
+
+ private:
+
+ // Test-supplied values that will be returned through the LocationBar
+ // interface.
+ std::wstring input_string_;
+ WindowOpenDisposition disposition_;
+ PageTransition::Type transition_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestLocationBar);
+};
+
+
+#endif // #ifndef CHROME_TEST_TEST_LOCATION_BAR_H_
diff --git a/chrome/test/unit/unittests.vcproj b/chrome/test/unit/unittests.vcproj
index aa5ee79..03f50f0 100644
--- a/chrome/test/unit/unittests.vcproj
+++ b/chrome/test/unit/unittests.vcproj
@@ -734,6 +734,10 @@
>
</File>
<File
+ RelativePath="..\test_location_bar.h"
+ >
+ </File>
+ <File
RelativePath="..\..\browser\renderer_host\test_render_view_host.cc"
>
</File>