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

Unified Diff: chrome/browser/instant/instant_browsertest.cc

Issue 10732002: Upstream rewrite of Instant. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Try again. Created 8 years, 5 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/instant/instant_browsertest.cc
diff --git a/chrome/browser/instant/instant_browsertest.cc b/chrome/browser/instant/instant_browsertest.cc
index 334eb77f006ae699a1ca0faba12c1077bffaae6b..f9ef128fd87f62165f09fa67dea11926c4b37a2a 100644
--- a/chrome/browser/instant/instant_browsertest.cc
+++ b/chrome/browser/instant/instant_browsertest.cc
@@ -42,9 +42,7 @@
using content::WebContents;
// Tests are flaky on Linux because of http://crbug.com/80118.
-#if defined(OS_LINUX) && !defined(USE_ASH)
-#define MAYBE(TestName) DISABLED_ ## TestName
-#elif defined(OS_WIN)
+#if defined(OS_WIN)
#define MAYBE(TestName) FLAKY_ ## TestName
#else
#define MAYBE(TestName) TestName
@@ -52,7 +50,9 @@ using content::WebContents;
class InstantTest : public InProcessBrowserTest {
public:
- InstantTest() {}
+ InstantTest() :
+ search_term_(ASCIIToUTF16("def")) {
sky 2012/07/25 17:29:56 Either put search_term_ on the previous line, or w
jered1 2012/07/25 20:22:04 Done.
+ }
void EnableInstant() {
InstantController::Enable(browser()->profile());
@@ -84,6 +84,11 @@ class InstantTest : public InProcessBrowserTest {
model->SetDefaultSearchProvider(template_url);
}
+ void SetOmniboxFocusAndUserText(const string16& user_text) {
+ omnibox()->SetFocus();
+ omnibox()->SetUserText(user_text);
+ }
+
// Type a character to get instant to trigger and determine instant support.
void DetermineInstantSupport() {
content::WindowedNotificationObserver observer(
@@ -91,7 +96,7 @@ class InstantTest : public InProcessBrowserTest {
content::NotificationService::AllSources());
// "a" triggers the "about:" provider. "b" begins the "bing.com" keyword.
// "c" might someday trigger a "chrome:" provider.
- omnibox()->SetUserText(ASCIIToUTF16("d"));
+ SetOmniboxFocusAndUserText(ASCIIToUTF16("d"));
observer.Wait();
}
@@ -100,7 +105,7 @@ class InstantTest : public InProcessBrowserTest {
content::WindowedNotificationObserver observer(
chrome::NOTIFICATION_INSTANT_CONTROLLER_SHOWN,
content::NotificationService::AllSources());
- omnibox()->SetUserText(ASCIIToUTF16("def"));
+ SetOmniboxFocusAndUserText(search_term_);
observer.Wait();
}
@@ -128,8 +133,12 @@ class InstantTest : public InProcessBrowserTest {
return instant()->loader_.get();
}
- std::string GetSuggestion() const {
- return UTF16ToUTF8(loader()->complete_suggested_text_);
+ string16 last_full_text() const {
sky 2012/07/25 17:29:56 const string16&
jered1 2012/07/25 20:22:04 Done.
+ return instant()->last_full_text_;
+ }
+
+ bool is_showing() const {
+ return instant()->is_showing_;
}
bool PressEnter() {
@@ -263,6 +272,8 @@ class InstantTest : public InProcessBrowserTest {
// renderer process is not well defined.
command_line->AppendSwitch(switches::kDisableGpuProcessPrelaunch);
}
+
+ const string16 search_term_;
};
// TODO(tonyg): Add the following tests:
@@ -279,9 +290,9 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnChangeEvent)) {
SearchAndWaitForPreviewToShow();
EXPECT_TRUE(preview());
- EXPECT_TRUE(instant()->is_displayable());
+ EXPECT_TRUE(is_showing());
EXPECT_TRUE(instant()->IsCurrent());
- EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText()));
+ EXPECT_EQ(ASCIIToUTF16("defghi"), omnibox()->GetText());
// Make sure the URL that will get committed when we press <Enter> matches
// that of the default search provider.
@@ -290,11 +301,11 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnChangeEvent)) {
GetDefaultSearchProvider();
EXPECT_TRUE(default_turl);
EXPECT_EQ(default_turl->url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("defghi"))),
- loader()->url().spec());
+ TemplateURLRef::SearchTermsArgs(string16())),
+ loader()->instant_url().spec());
// Check that the value is reflected and onchange is called.
- EXPECT_EQ("true 0 0 1 true d false def false 3 3",
+ EXPECT_EQ("true 0 0 2 false d false def true 3 3",
GetSearchStateAsString(preview()->web_contents(), false));
}
@@ -307,7 +318,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnSubmitEvent)) {
SearchAndWaitForPreviewToShow();
EXPECT_TRUE(preview());
- EXPECT_TRUE(instant()->is_displayable());
+ EXPECT_TRUE(is_showing());
EXPECT_TRUE(instant()->IsCurrent());
EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText()));
@@ -318,7 +329,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnSubmitEvent)) {
// Check that the preview has been committed.
EXPECT_FALSE(preview());
- EXPECT_FALSE(instant()->is_displayable());
+ EXPECT_FALSE(is_showing());
EXPECT_FALSE(instant()->IsCurrent());
EXPECT_EQ(preview_tab, chrome::GetActiveWebContents(browser()));
@@ -327,11 +338,11 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnSubmitEvent)) {
EXPECT_EQ(2, preview_tab->GetController().GetEntryCount());
// Check that the value is reflected and onsubmit is called.
- EXPECT_EQ("true 1 0 1 true d false defghi true 3 3",
+ EXPECT_EQ("true 1 0 2 false d false defghi true 6 6",
GetSearchStateAsString(preview_tab, true));
// Make sure the searchbox values were reset.
- EXPECT_EQ("true 1 0 1 true d false false 0 0",
+ EXPECT_EQ("true 1 0 2 false d false false 0 0",
GetSearchStateAsString(preview_tab, false));
}
@@ -344,7 +355,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_OnCancelEvent) {
SearchAndWaitForPreviewToShow();
EXPECT_TRUE(preview());
- EXPECT_TRUE(instant()->is_displayable());
+ EXPECT_TRUE(is_showing());
EXPECT_TRUE(instant()->IsCurrent());
EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText()));
@@ -356,7 +367,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_OnCancelEvent) {
// Check that the preview has been committed.
EXPECT_FALSE(preview());
- EXPECT_FALSE(instant()->is_displayable());
+ EXPECT_FALSE(is_showing());
EXPECT_FALSE(instant()->IsCurrent());
EXPECT_EQ(preview_tab, chrome::GetActiveWebContents(browser()));
@@ -377,7 +388,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsArrayOfStrings)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument("['defg', 'unused']"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("defg", GetSuggestion());
+ EXPECT_EQ(ASCIIToUTF16("defg"), last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyArray)) {
@@ -388,7 +399,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyArray)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument("[]"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsValidJson)) {
@@ -400,7 +411,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsValidJson)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument(
"{suggestions:[{value:'defg'},{value:'unused'}]}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("defg", GetSuggestion());
+ EXPECT_EQ(ASCIIToUTF16("defg"), last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsInvalidSuggestions)) {
@@ -411,7 +422,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsInvalidSuggestions)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:{value:'defg'}}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyJson)) {
@@ -422,7 +433,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyJson)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument("{}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestions)) {
@@ -433,7 +444,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestions)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:[]}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestion)) {
@@ -444,7 +455,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestion)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:[{}]}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNever)) {
@@ -456,14 +467,14 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNever)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument(
"{suggestions:[{value:'defg'}],complete_behavior:'never'}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("defg", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
EXPECT_EQ(INSTANT_COMPLETE_NEVER,
omnibox()->model()->instant_complete_behavior());
- EXPECT_EQ("def", UTF16ToUTF8(omnibox()->GetText()));
+ EXPECT_EQ(search_term_, omnibox()->GetText());
}
-IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteDelayed)) {
+IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_InstantCompleteDelayed) {
ASSERT_TRUE(test_server()->Start());
EnableInstant();
SetupInstantProvider("instant.html");
@@ -472,11 +483,11 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteDelayed)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument(
"{suggestions:[{value:'defg'}],complete_behavior:'delayed'}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("defg", GetSuggestion());
+ EXPECT_EQ(search_term_, last_full_text());
EXPECT_EQ(INSTANT_COMPLETE_DELAYED,
omnibox()->model()->instant_complete_behavior());
- EXPECT_EQ("def", UTF16ToUTF8(omnibox()->GetText()));
+ EXPECT_EQ(ASCIIToUTF16("defg"), omnibox()->GetText());
}
IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNow)) {
@@ -488,11 +499,11 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNow)) {
ASSERT_TRUE(SetSuggestionsJavascriptArgument(
"{suggestions:[{value:'defg'}],complete_behavior:'now'}"));
SearchAndWaitForPreviewToShow();
- EXPECT_EQ("defg", GetSuggestion());
+ EXPECT_EQ(ASCIIToUTF16("defg"), last_full_text());
EXPECT_EQ(INSTANT_COMPLETE_NOW,
omnibox()->model()->instant_complete_behavior());
- EXPECT_EQ("defg", UTF16ToUTF8(omnibox()->GetText()));
+ EXPECT_EQ(ASCIIToUTF16("defg"), omnibox()->GetText());
}
// Verifies that instant previews aren't shown for crash URLs.
@@ -501,7 +512,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(CrashUrlCancelsInstant)) {
EnableInstant();
SetupInstantProvider("instant.html");
- omnibox()->SetUserText(ASCIIToUTF16(chrome::kChromeUICrashURL));
+ SetOmniboxFocusAndUserText(ASCIIToUTF16(chrome::kChromeUICrashURL));
EXPECT_FALSE(preview());
}
@@ -532,7 +543,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(ShowPreviewNonSearch)) {
SetupInstantProvider("instant.html");
GURL url(test_server()->GetURL("files/empty.html"));
- omnibox()->SetUserText(UTF8ToUTF16(url.spec()));
+ SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec()));
EXPECT_FALSE(preview());
}
@@ -544,7 +555,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(NonSearchToSearch)) {
// Load a non-search URL.
GURL url(test_server()->GetURL("files/empty.html"));
- omnibox()->SetUserText(UTF8ToUTF16(url.spec()));
+ SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec()));
EXPECT_FALSE(preview());
// Now type in some search text.
@@ -553,9 +564,8 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(NonSearchToSearch)) {
// We should now have a preview, but it shouldn't be showing yet, because we
// haven't gotten back suggestions.
EXPECT_TRUE(preview());
- EXPECT_FALSE(loader()->ready());
- EXPECT_FALSE(instant()->is_displayable());
- EXPECT_FALSE(instant()->IsCurrent());
+ EXPECT_FALSE(is_showing());
+ EXPECT_TRUE(instant()->IsCurrent());
// Reset the user text so that the page is told the text changed.
//
@@ -571,8 +581,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(NonSearchToSearch)) {
// We should now be showing the preview.
EXPECT_TRUE(preview());
- EXPECT_TRUE(loader()->ready());
- EXPECT_TRUE(instant()->is_displayable());
+ EXPECT_TRUE(is_showing());
EXPECT_TRUE(instant()->IsCurrent());
content::RenderWidgetHostView* rwhv =
@@ -593,19 +602,18 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchToNonSearch)) {
content::NotificationService::AllSources());
// Type in some search text.
- omnibox()->SetUserText(ASCIIToUTF16("def"));
+ SetOmniboxFocusAndUserText(search_term_);
// Load a non search URL. Don't wait for the preview to navigate. It'll still
// end up loading in the background.
GURL url(test_server()->GetURL("files/empty.html"));
- omnibox()->SetUserText(UTF8ToUTF16(url.spec()));
+ SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec()));
instant_support_observer.Wait();
// We should now have a preview, but it shouldn't be showing yet.
EXPECT_TRUE(preview());
- EXPECT_FALSE(loader()->ready());
- EXPECT_FALSE(instant()->is_displayable());
+ EXPECT_FALSE(is_showing());
EXPECT_FALSE(instant()->IsCurrent());
// Send onchange so that the page sends up suggestions. See the comments in
@@ -617,8 +625,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchToNonSearch)) {
// Instant should be active, but not displaying.
EXPECT_TRUE(preview());
- EXPECT_TRUE(loader()->ready());
- EXPECT_FALSE(instant()->is_displayable());
+ EXPECT_FALSE(is_showing());
EXPECT_FALSE(instant()->IsCurrent());
}
@@ -633,7 +640,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchServerDoesntSupportInstant)) {
content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
content::NotificationService::AllSources());
- omnibox()->SetUserText(ASCIIToUTF16("d"));
+ SetOmniboxFocusAndUserText(ASCIIToUTF16("d"));
EXPECT_TRUE(preview());
// When the response comes back that the page doesn't support instant the tab
@@ -652,7 +659,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest,
SetupInstantProvider("empty.html");
GURL url(test_server()->GetURL("files/empty.html"));
- omnibox()->SetUserText(UTF8ToUTF16(url.spec()));
+ SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec()));
EXPECT_FALSE(preview());
content::WindowedNotificationObserver tab_closed_observer(
@@ -660,7 +667,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest,
content::NotificationService::AllSources());
// Now type in some search text.
- omnibox()->SetUserText(ASCIIToUTF16("d"));
+ SetOmniboxFocusAndUserText(ASCIIToUTF16("d"));
EXPECT_TRUE(preview());
// When the response comes back that the page doesn't support instant the tab
@@ -670,7 +677,8 @@ IN_PROC_BROWSER_TEST_F(InstantTest,
}
// Verifies the page was told a non-zero height.
-IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(ValidHeight)) {
+// TODO(dominich): This seems to be a dumb test. Confirm that it's dumb.
+IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_ValidHeight) {
ASSERT_TRUE(test_server()->Start());
EnableInstant();
SetupInstantProvider("instant.html");
@@ -714,7 +722,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(DontPersistSearchbox)) {
std::string value;
ASSERT_TRUE(GetStringFromJavascript(preview()->web_contents(),
"window.chrome.searchBox.value", &value));
- EXPECT_EQ("def", value);
+ EXPECT_EQ(search_term_, UTF8ToUTF16(value));
// Commit the preview.
ASSERT_TRUE(PressEnter());
@@ -765,7 +773,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(PreloadsInstant)) {
// Instant should have a preview, but not display it.
EXPECT_TRUE(preview());
- EXPECT_FALSE(instant()->is_displayable());
+ EXPECT_FALSE(is_showing());
EXPECT_FALSE(instant()->IsCurrent());
ASSERT_TRUE(CheckVisibilityIs(preview()->web_contents(), false));
@@ -779,7 +787,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(PreloadsInstant)) {
EXPECT_EQ(preview_tab, preview());
// Verify that the preview is in fact showing instant search.
- EXPECT_TRUE(instant()->is_displayable());
+ EXPECT_TRUE(is_showing());
EXPECT_TRUE(instant()->IsCurrent());
ASSERT_TRUE(CheckVisibilityIs(preview()->web_contents(), true));
}
@@ -806,12 +814,14 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(PageVisibilityTest)) {
ASSERT_TRUE(CheckVisibilityIs(initial_contents, false));
// Deleting the user text should hide the preview.
- omnibox()->SetUserText(string16());
+ SetOmniboxFocusAndUserText(string16());
ASSERT_TRUE(CheckVisibilityIs(preview_contents, false));
ASSERT_TRUE(CheckVisibilityIs(initial_contents, true));
// Set the user text back and we should see the preview again.
- omnibox()->SetUserText(ASCIIToUTF16("def"));
+ // TODO(dominich): This bit is not working. Copy-pasting allows us to see this
+ // in Chrome too.
sky 2012/07/25 17:29:56 This comment doesn't make sense to me, but I'm ass
jered1 2012/07/25 20:22:04 I've deleted the comment. Sreeram will just fix th
+ SetOmniboxFocusAndUserText(ASCIIToUTF16("def"));
ASSERT_TRUE(CheckVisibilityIs(preview_contents, true));
ASSERT_TRUE(CheckVisibilityIs(initial_contents, false));
« no previous file with comments | « no previous file | chrome/browser/instant/instant_commit_type.h » ('j') | chrome/browser/instant/instant_loader.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698