OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/string_util.h" | 6 #include "base/string_util.h" |
7 #include "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map.h" |
10 #include "chrome/browser/instant/instant_controller.h" | 10 #include "chrome/browser/instant/instant_controller.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "content/public/browser/render_view_host.h" | 35 #include "content/public/browser/render_view_host.h" |
36 #include "content/public/browser/render_widget_host_view.h" | 36 #include "content/public/browser/render_widget_host_view.h" |
37 #include "content/public/browser/web_contents.h" | 37 #include "content/public/browser/web_contents.h" |
38 #include "content/public/common/content_switches.h" | 38 #include "content/public/common/content_switches.h" |
39 #include "grit/generated_resources.h" | 39 #include "grit/generated_resources.h" |
40 #include "ui/base/l10n/l10n_util.h" | 40 #include "ui/base/l10n/l10n_util.h" |
41 | 41 |
42 using content::WebContents; | 42 using content::WebContents; |
43 | 43 |
44 // Tests are flaky on Linux because of http://crbug.com/80118. | 44 // Tests are flaky on Linux because of http://crbug.com/80118. |
45 #if defined(OS_LINUX) && !defined(USE_ASH) | 45 #if defined(OS_WIN) |
46 #define MAYBE(TestName) DISABLED_ ## TestName | |
47 #elif defined(OS_WIN) | |
48 #define MAYBE(TestName) FLAKY_ ## TestName | 46 #define MAYBE(TestName) FLAKY_ ## TestName |
49 #else | 47 #else |
50 #define MAYBE(TestName) TestName | 48 #define MAYBE(TestName) TestName |
51 #endif | 49 #endif |
52 | 50 |
53 class InstantTest : public InProcessBrowserTest { | 51 class InstantTest : public InProcessBrowserTest { |
54 public: | 52 public: |
55 InstantTest() { | 53 InstantTest() : |
| 54 search_term_(ASCIIToUTF16("def")) { |
56 EnableDOMAutomation(); | 55 EnableDOMAutomation(); |
57 } | 56 } |
58 | 57 |
59 void EnableInstant() { | 58 void EnableInstant() { |
60 InstantController::Enable(browser()->profile()); | 59 InstantController::Enable(browser()->profile()); |
61 } | 60 } |
62 | 61 |
63 void SetupInstantProvider(const std::string& page) { | 62 void SetupInstantProvider(const std::string& page) { |
64 Profile* profile = browser()->profile(); | 63 Profile* profile = browser()->profile(); |
65 TemplateURLService* model = | 64 TemplateURLService* model = |
(...skipping 13 matching lines...) Expand all Loading... |
79 data.SetURL(base::StringPrintf("http://%s:%d/files/%s?q={searchTerms}", | 78 data.SetURL(base::StringPrintf("http://%s:%d/files/%s?q={searchTerms}", |
80 test_server()->host_port_pair().host().c_str(), | 79 test_server()->host_port_pair().host().c_str(), |
81 test_server()->host_port_pair().port(), page.c_str())); | 80 test_server()->host_port_pair().port(), page.c_str())); |
82 data.instant_url = data.url(); | 81 data.instant_url = data.url(); |
83 // TemplateURLService takes ownership of this. | 82 // TemplateURLService takes ownership of this. |
84 TemplateURL* template_url = new TemplateURL(profile, data); | 83 TemplateURL* template_url = new TemplateURL(profile, data); |
85 model->Add(template_url); | 84 model->Add(template_url); |
86 model->SetDefaultSearchProvider(template_url); | 85 model->SetDefaultSearchProvider(template_url); |
87 } | 86 } |
88 | 87 |
| 88 void SetOmniboxFocusAndUserText(const string16& user_text) { |
| 89 omnibox()->SetFocus(); |
| 90 omnibox()->SetUserText(user_text); |
| 91 } |
| 92 |
89 // Type a character to get instant to trigger and determine instant support. | 93 // Type a character to get instant to trigger and determine instant support. |
90 void DetermineInstantSupport() { | 94 void DetermineInstantSupport() { |
91 ui_test_utils::WindowedNotificationObserver observer( | 95 ui_test_utils::WindowedNotificationObserver observer( |
92 chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED, | 96 chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED, |
93 content::NotificationService::AllSources()); | 97 content::NotificationService::AllSources()); |
94 // "a" triggers the "about:" provider. "b" begins the "bing.com" keyword. | 98 // "a" triggers the "about:" provider. "b" begins the "bing.com" keyword. |
95 // "c" might someday trigger a "chrome:" provider. | 99 // "c" might someday trigger a "chrome:" provider. |
96 omnibox()->SetUserText(ASCIIToUTF16("d")); | 100 SetOmniboxFocusAndUserText(ASCIIToUTF16("d")); |
97 observer.Wait(); | 101 observer.Wait(); |
98 } | 102 } |
99 | 103 |
100 // Types "def" into the omnibox and waits for the preview to be shown. | 104 // Types "def" into the omnibox and waits for the preview to be shown. |
101 void SearchAndWaitForPreviewToShow() { | 105 void SearchAndWaitForPreviewToShow() { |
102 ui_test_utils::WindowedNotificationObserver observer( | 106 ui_test_utils::WindowedNotificationObserver observer( |
103 chrome::NOTIFICATION_INSTANT_CONTROLLER_SHOWN, | 107 chrome::NOTIFICATION_INSTANT_CONTROLLER_SHOWN, |
104 content::NotificationService::AllSources()); | 108 content::NotificationService::AllSources()); |
105 omnibox()->SetUserText(ASCIIToUTF16("def")); | 109 SetOmniboxFocusAndUserText(search_term_); |
106 observer.Wait(); | 110 observer.Wait(); |
107 } | 111 } |
108 | 112 |
109 // Sends a message to the renderer and waits for the response to come back to | 113 // Sends a message to the renderer and waits for the response to come back to |
110 // the browser. Returns true on success. | 114 // the browser. Returns true on success. |
111 bool WaitForMessageToBeProcessedByRenderer() { | 115 bool WaitForMessageToBeProcessedByRenderer() { |
112 bool result = false; | 116 bool result = false; |
113 return GetBoolFromJavascript(preview()->web_contents(), "true", &result) && | 117 return GetBoolFromJavascript(preview()->web_contents(), "true", &result) && |
114 result; | 118 result; |
115 } | 119 } |
116 | 120 |
117 InstantController* instant() const { | 121 InstantController* instant() const { |
118 return browser()->instant_controller()->instant(); | 122 return browser()->instant_controller()->instant(); |
119 } | 123 } |
120 | 124 |
121 OmniboxView* omnibox() const { | 125 OmniboxView* omnibox() const { |
122 return browser()->window()->GetLocationBar()->GetLocationEntry(); | 126 return browser()->window()->GetLocationBar()->GetLocationEntry(); |
123 } | 127 } |
124 | 128 |
125 TabContents* preview() const { | 129 TabContents* preview() const { |
126 return instant()->GetPreviewContents(); | 130 return instant()->GetPreviewContents(); |
127 } | 131 } |
128 | 132 |
129 InstantLoader* loader() const { | 133 InstantLoader* loader() const { |
130 return instant()->loader_.get(); | 134 return instant()->loader_.get(); |
131 } | 135 } |
132 | 136 |
133 std::string GetSuggestion() const { | 137 string16 last_full_text() const { |
134 return UTF16ToUTF8(loader()->complete_suggested_text_); | 138 return instant()->last_full_text_; |
| 139 } |
| 140 |
| 141 bool is_showing() const { |
| 142 return instant()->is_showing_; |
135 } | 143 } |
136 | 144 |
137 bool PressEnter() { | 145 bool PressEnter() { |
138 return ui_test_utils::SendKeyPressSync( | 146 return ui_test_utils::SendKeyPressSync( |
139 browser(), ui::VKEY_RETURN, false, false, false, false); | 147 browser(), ui::VKEY_RETURN, false, false, false, false); |
140 } | 148 } |
141 | 149 |
142 bool SetSuggestionsJavascriptArgument(const std::string& argument) { | 150 bool SetSuggestionsJavascriptArgument(const std::string& argument) { |
143 std::wstring script = UTF8ToWide(base::StringPrintf( | 151 std::wstring script = UTF8ToWide(base::StringPrintf( |
144 "window.setSuggestionsArgument = %s;", argument.c_str())); | 152 "window.setSuggestionsArgument = %s;", argument.c_str())); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 selection_end); | 266 selection_end); |
259 } | 267 } |
260 | 268 |
261 protected: | 269 protected: |
262 virtual void SetUpCommandLine(CommandLine* command_line) { | 270 virtual void SetUpCommandLine(CommandLine* command_line) { |
263 // Do not prelaunch the GPU process for these tests because it will show | 271 // Do not prelaunch the GPU process for these tests because it will show |
264 // up in task manager but whether it appears before or after the new tab | 272 // up in task manager but whether it appears before or after the new tab |
265 // renderer process is not well defined. | 273 // renderer process is not well defined. |
266 command_line->AppendSwitch(switches::kDisableGpuProcessPrelaunch); | 274 command_line->AppendSwitch(switches::kDisableGpuProcessPrelaunch); |
267 } | 275 } |
| 276 |
| 277 const string16 search_term_; |
268 }; | 278 }; |
269 | 279 |
270 // TODO(tonyg): Add the following tests: | 280 // TODO(tonyg): Add the following tests: |
271 // - Test that the search box API is not populated for pages other than the | 281 // - Test that the search box API is not populated for pages other than the |
272 // default search provider. | 282 // default search provider. |
273 // - Test resize events. | 283 // - Test resize events. |
274 | 284 |
275 // Verify that the onchange event is dispatched upon typing in the box. | 285 // Verify that the onchange event is dispatched upon typing in the box. |
276 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnChangeEvent)) { | 286 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnChangeEvent)) { |
277 ASSERT_TRUE(test_server()->Start()); | 287 ASSERT_TRUE(test_server()->Start()); |
278 EnableInstant(); | 288 EnableInstant(); |
279 SetupInstantProvider("instant.html"); | 289 SetupInstantProvider("instant.html"); |
280 DetermineInstantSupport(); | 290 DetermineInstantSupport(); |
281 SearchAndWaitForPreviewToShow(); | 291 SearchAndWaitForPreviewToShow(); |
282 | 292 |
283 EXPECT_TRUE(preview()); | 293 EXPECT_TRUE(preview()); |
284 EXPECT_TRUE(instant()->is_displayable()); | 294 EXPECT_TRUE(is_showing()); |
285 EXPECT_TRUE(instant()->IsCurrent()); | 295 EXPECT_TRUE(instant()->IsCurrent()); |
286 EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText())); | 296 EXPECT_EQ(ASCIIToUTF16("defghi"), omnibox()->GetText()); |
287 | 297 |
288 // Make sure the URL that will get committed when we press <Enter> matches | 298 // Make sure the URL that will get committed when we press <Enter> matches |
289 // that of the default search provider. | 299 // that of the default search provider. |
290 const TemplateURL* default_turl = | 300 const TemplateURL* default_turl = |
291 TemplateURLServiceFactory::GetForProfile(browser()->profile())-> | 301 TemplateURLServiceFactory::GetForProfile(browser()->profile())-> |
292 GetDefaultSearchProvider(); | 302 GetDefaultSearchProvider(); |
293 EXPECT_TRUE(default_turl); | 303 EXPECT_TRUE(default_turl); |
294 EXPECT_EQ(default_turl->url_ref().ReplaceSearchTerms( | 304 EXPECT_EQ(default_turl->url_ref().ReplaceSearchTerms( |
295 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("defghi"))), | 305 TemplateURLRef::SearchTermsArgs(string16())), |
296 loader()->url().spec()); | 306 loader()->instant_url().spec()); |
297 | 307 |
298 // Check that the value is reflected and onchange is called. | 308 // Check that the value is reflected and onchange is called. |
299 EXPECT_EQ("true 0 0 1 true d false def false 3 3", | 309 EXPECT_EQ("true 0 0 2 false d false def true 3 3", |
300 GetSearchStateAsString(preview()->web_contents(), false)); | 310 GetSearchStateAsString(preview()->web_contents(), false)); |
301 } | 311 } |
302 | 312 |
303 // Verify that the onsubmit event is dispatched upon pressing <Enter>. | 313 // Verify that the onsubmit event is dispatched upon pressing <Enter>. |
304 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnSubmitEvent)) { | 314 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(OnSubmitEvent)) { |
305 ASSERT_TRUE(test_server()->Start()); | 315 ASSERT_TRUE(test_server()->Start()); |
306 EnableInstant(); | 316 EnableInstant(); |
307 SetupInstantProvider("instant.html"); | 317 SetupInstantProvider("instant.html"); |
308 DetermineInstantSupport(); | 318 DetermineInstantSupport(); |
309 SearchAndWaitForPreviewToShow(); | 319 SearchAndWaitForPreviewToShow(); |
310 | 320 |
311 EXPECT_TRUE(preview()); | 321 EXPECT_TRUE(preview()); |
312 EXPECT_TRUE(instant()->is_displayable()); | 322 EXPECT_TRUE(is_showing()); |
313 EXPECT_TRUE(instant()->IsCurrent()); | 323 EXPECT_TRUE(instant()->IsCurrent()); |
314 EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText())); | 324 EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText())); |
315 | 325 |
316 WebContents* preview_tab = preview()->web_contents(); | 326 WebContents* preview_tab = preview()->web_contents(); |
317 EXPECT_TRUE(preview_tab); | 327 EXPECT_TRUE(preview_tab); |
318 | 328 |
319 ASSERT_TRUE(PressEnter()); | 329 ASSERT_TRUE(PressEnter()); |
320 | 330 |
321 // Check that the preview has been committed. | 331 // Check that the preview has been committed. |
322 EXPECT_FALSE(preview()); | 332 EXPECT_FALSE(preview()); |
323 EXPECT_FALSE(instant()->is_displayable()); | 333 EXPECT_FALSE(is_showing()); |
324 EXPECT_FALSE(instant()->IsCurrent()); | 334 EXPECT_FALSE(instant()->IsCurrent()); |
325 EXPECT_EQ(preview_tab, chrome::GetActiveWebContents(browser())); | 335 EXPECT_EQ(preview_tab, chrome::GetActiveWebContents(browser())); |
326 | 336 |
327 // We should have two entries. One corresponding to the page the user was | 337 // We should have two entries. One corresponding to the page the user was |
328 // first on, and one for the search page. | 338 // first on, and one for the search page. |
329 EXPECT_EQ(2, preview_tab->GetController().GetEntryCount()); | 339 EXPECT_EQ(2, preview_tab->GetController().GetEntryCount()); |
330 | 340 |
331 // Check that the value is reflected and onsubmit is called. | 341 // Check that the value is reflected and onsubmit is called. |
332 EXPECT_EQ("true 1 0 1 true d false defghi true 3 3", | 342 EXPECT_EQ("true 1 0 2 false d false defghi true 6 6", |
333 GetSearchStateAsString(preview_tab, true)); | 343 GetSearchStateAsString(preview_tab, true)); |
334 | 344 |
335 // Make sure the searchbox values were reset. | 345 // Make sure the searchbox values were reset. |
336 EXPECT_EQ("true 1 0 1 true d false false 0 0", | 346 EXPECT_EQ("true 1 0 2 false d false false 0 0", |
337 GetSearchStateAsString(preview_tab, false)); | 347 GetSearchStateAsString(preview_tab, false)); |
338 } | 348 } |
339 | 349 |
340 // Verify that the oncancel event is dispatched upon losing focus. | 350 // Verify that the oncancel event is dispatched upon losing focus. |
341 IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_OnCancelEvent) { | 351 IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_OnCancelEvent) { |
342 ASSERT_TRUE(test_server()->Start()); | 352 ASSERT_TRUE(test_server()->Start()); |
343 EnableInstant(); | 353 EnableInstant(); |
344 SetupInstantProvider("instant.html"); | 354 SetupInstantProvider("instant.html"); |
345 DetermineInstantSupport(); | 355 DetermineInstantSupport(); |
346 SearchAndWaitForPreviewToShow(); | 356 SearchAndWaitForPreviewToShow(); |
347 | 357 |
348 EXPECT_TRUE(preview()); | 358 EXPECT_TRUE(preview()); |
349 EXPECT_TRUE(instant()->is_displayable()); | 359 EXPECT_TRUE(is_showing()); |
350 EXPECT_TRUE(instant()->IsCurrent()); | 360 EXPECT_TRUE(instant()->IsCurrent()); |
351 EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText())); | 361 EXPECT_EQ("defghi", UTF16ToUTF8(omnibox()->GetText())); |
352 | 362 |
353 WebContents* preview_tab = preview()->web_contents(); | 363 WebContents* preview_tab = preview()->web_contents(); |
354 EXPECT_TRUE(preview_tab); | 364 EXPECT_TRUE(preview_tab); |
355 | 365 |
356 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); | 366 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
357 ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); | 367 ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); |
358 | 368 |
359 // Check that the preview has been committed. | 369 // Check that the preview has been committed. |
360 EXPECT_FALSE(preview()); | 370 EXPECT_FALSE(preview()); |
361 EXPECT_FALSE(instant()->is_displayable()); | 371 EXPECT_FALSE(is_showing()); |
362 EXPECT_FALSE(instant()->IsCurrent()); | 372 EXPECT_FALSE(instant()->IsCurrent()); |
363 EXPECT_EQ(preview_tab, chrome::GetActiveWebContents(browser())); | 373 EXPECT_EQ(preview_tab, chrome::GetActiveWebContents(browser())); |
364 | 374 |
365 // Check that the value is reflected and oncancel is called. | 375 // Check that the value is reflected and oncancel is called. |
366 EXPECT_EQ("true 0 1 1 true d false def false 3 3", | 376 EXPECT_EQ("true 0 1 1 true d false def false 3 3", |
367 GetSearchStateAsString(preview_tab, true)); | 377 GetSearchStateAsString(preview_tab, true)); |
368 | 378 |
369 // Make sure the searchbox values were reset. | 379 // Make sure the searchbox values were reset. |
370 EXPECT_EQ("true 0 1 1 true d false false 0 0", | 380 EXPECT_EQ("true 0 1 1 true d false false 0 0", |
371 GetSearchStateAsString(preview_tab, false)); | 381 GetSearchStateAsString(preview_tab, false)); |
372 } | 382 } |
373 | 383 |
374 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsArrayOfStrings)) { | 384 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsArrayOfStrings)) { |
375 ASSERT_TRUE(test_server()->Start()); | 385 ASSERT_TRUE(test_server()->Start()); |
376 EnableInstant(); | 386 EnableInstant(); |
377 SetupInstantProvider("instant.html"); | 387 SetupInstantProvider("instant.html"); |
378 DetermineInstantSupport(); | 388 DetermineInstantSupport(); |
379 | 389 |
380 ASSERT_TRUE(SetSuggestionsJavascriptArgument("['defg', 'unused']")); | 390 ASSERT_TRUE(SetSuggestionsJavascriptArgument("['defg', 'unused']")); |
381 SearchAndWaitForPreviewToShow(); | 391 SearchAndWaitForPreviewToShow(); |
382 EXPECT_EQ("defg", GetSuggestion()); | 392 EXPECT_EQ(ASCIIToUTF16("defg"), last_full_text()); |
383 } | 393 } |
384 | 394 |
385 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyArray)) { | 395 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyArray)) { |
386 ASSERT_TRUE(test_server()->Start()); | 396 ASSERT_TRUE(test_server()->Start()); |
387 EnableInstant(); | 397 EnableInstant(); |
388 SetupInstantProvider("instant.html"); | 398 SetupInstantProvider("instant.html"); |
389 DetermineInstantSupport(); | 399 DetermineInstantSupport(); |
390 | 400 |
391 ASSERT_TRUE(SetSuggestionsJavascriptArgument("[]")); | 401 ASSERT_TRUE(SetSuggestionsJavascriptArgument("[]")); |
392 SearchAndWaitForPreviewToShow(); | 402 SearchAndWaitForPreviewToShow(); |
393 EXPECT_EQ("", GetSuggestion()); | 403 EXPECT_EQ(search_term_, last_full_text()); |
394 } | 404 } |
395 | 405 |
396 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsValidJson)) { | 406 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsValidJson)) { |
397 ASSERT_TRUE(test_server()->Start()); | 407 ASSERT_TRUE(test_server()->Start()); |
398 EnableInstant(); | 408 EnableInstant(); |
399 SetupInstantProvider("instant.html"); | 409 SetupInstantProvider("instant.html"); |
400 DetermineInstantSupport(); | 410 DetermineInstantSupport(); |
401 | 411 |
402 ASSERT_TRUE(SetSuggestionsJavascriptArgument( | 412 ASSERT_TRUE(SetSuggestionsJavascriptArgument( |
403 "{suggestions:[{value:'defg'},{value:'unused'}]}")); | 413 "{suggestions:[{value:'defg'},{value:'unused'}]}")); |
404 SearchAndWaitForPreviewToShow(); | 414 SearchAndWaitForPreviewToShow(); |
405 EXPECT_EQ("defg", GetSuggestion()); | 415 EXPECT_EQ(ASCIIToUTF16("defg"), last_full_text()); |
406 } | 416 } |
407 | 417 |
408 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsInvalidSuggestions)) { | 418 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsInvalidSuggestions)) { |
409 ASSERT_TRUE(test_server()->Start()); | 419 ASSERT_TRUE(test_server()->Start()); |
410 EnableInstant(); | 420 EnableInstant(); |
411 SetupInstantProvider("instant.html"); | 421 SetupInstantProvider("instant.html"); |
412 DetermineInstantSupport(); | 422 DetermineInstantSupport(); |
413 | 423 |
414 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:{value:'defg'}}")); | 424 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:{value:'defg'}}")); |
415 SearchAndWaitForPreviewToShow(); | 425 SearchAndWaitForPreviewToShow(); |
416 EXPECT_EQ("", GetSuggestion()); | 426 EXPECT_EQ(search_term_, last_full_text()); |
417 } | 427 } |
418 | 428 |
419 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyJson)) { | 429 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptyJson)) { |
420 ASSERT_TRUE(test_server()->Start()); | 430 ASSERT_TRUE(test_server()->Start()); |
421 EnableInstant(); | 431 EnableInstant(); |
422 SetupInstantProvider("instant.html"); | 432 SetupInstantProvider("instant.html"); |
423 DetermineInstantSupport(); | 433 DetermineInstantSupport(); |
424 | 434 |
425 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{}")); | 435 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{}")); |
426 SearchAndWaitForPreviewToShow(); | 436 SearchAndWaitForPreviewToShow(); |
427 EXPECT_EQ("", GetSuggestion()); | 437 EXPECT_EQ(search_term_, last_full_text()); |
428 } | 438 } |
429 | 439 |
430 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestions)) { | 440 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestions)) { |
431 ASSERT_TRUE(test_server()->Start()); | 441 ASSERT_TRUE(test_server()->Start()); |
432 EnableInstant(); | 442 EnableInstant(); |
433 SetupInstantProvider("instant.html"); | 443 SetupInstantProvider("instant.html"); |
434 DetermineInstantSupport(); | 444 DetermineInstantSupport(); |
435 | 445 |
436 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:[]}")); | 446 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:[]}")); |
437 SearchAndWaitForPreviewToShow(); | 447 SearchAndWaitForPreviewToShow(); |
438 EXPECT_EQ("", GetSuggestion()); | 448 EXPECT_EQ(search_term_, last_full_text()); |
439 } | 449 } |
440 | 450 |
441 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestion)) { | 451 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SetSuggestionsEmptySuggestion)) { |
442 ASSERT_TRUE(test_server()->Start()); | 452 ASSERT_TRUE(test_server()->Start()); |
443 EnableInstant(); | 453 EnableInstant(); |
444 SetupInstantProvider("instant.html"); | 454 SetupInstantProvider("instant.html"); |
445 DetermineInstantSupport(); | 455 DetermineInstantSupport(); |
446 | 456 |
447 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:[{}]}")); | 457 ASSERT_TRUE(SetSuggestionsJavascriptArgument("{suggestions:[{}]}")); |
448 SearchAndWaitForPreviewToShow(); | 458 SearchAndWaitForPreviewToShow(); |
449 EXPECT_EQ("", GetSuggestion()); | 459 EXPECT_EQ(search_term_, last_full_text()); |
450 } | 460 } |
451 | 461 |
452 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNever)) { | 462 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNever)) { |
453 ASSERT_TRUE(test_server()->Start()); | 463 ASSERT_TRUE(test_server()->Start()); |
454 EnableInstant(); | 464 EnableInstant(); |
455 SetupInstantProvider("instant.html"); | 465 SetupInstantProvider("instant.html"); |
456 DetermineInstantSupport(); | 466 DetermineInstantSupport(); |
457 | 467 |
458 ASSERT_TRUE(SetSuggestionsJavascriptArgument( | 468 ASSERT_TRUE(SetSuggestionsJavascriptArgument( |
459 "{suggestions:[{value:'defg'}],complete_behavior:'never'}")); | 469 "{suggestions:[{value:'defg'}],complete_behavior:'never'}")); |
460 SearchAndWaitForPreviewToShow(); | 470 SearchAndWaitForPreviewToShow(); |
461 EXPECT_EQ("defg", GetSuggestion()); | 471 EXPECT_EQ(search_term_, last_full_text()); |
462 | 472 |
463 EXPECT_EQ(INSTANT_COMPLETE_NEVER, | 473 EXPECT_EQ(INSTANT_COMPLETE_NEVER, |
464 omnibox()->model()->instant_complete_behavior()); | 474 omnibox()->model()->instant_complete_behavior()); |
465 EXPECT_EQ("def", UTF16ToUTF8(omnibox()->GetText())); | 475 EXPECT_EQ(search_term_, omnibox()->GetText()); |
466 } | 476 } |
467 | 477 |
468 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteDelayed)) { | 478 IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_InstantCompleteDelayed) { |
469 ASSERT_TRUE(test_server()->Start()); | 479 ASSERT_TRUE(test_server()->Start()); |
470 EnableInstant(); | 480 EnableInstant(); |
471 SetupInstantProvider("instant.html"); | 481 SetupInstantProvider("instant.html"); |
472 DetermineInstantSupport(); | 482 DetermineInstantSupport(); |
473 | 483 |
474 ASSERT_TRUE(SetSuggestionsJavascriptArgument( | 484 ASSERT_TRUE(SetSuggestionsJavascriptArgument( |
475 "{suggestions:[{value:'defg'}],complete_behavior:'delayed'}")); | 485 "{suggestions:[{value:'defg'}],complete_behavior:'delayed'}")); |
476 SearchAndWaitForPreviewToShow(); | 486 SearchAndWaitForPreviewToShow(); |
477 EXPECT_EQ("defg", GetSuggestion()); | 487 EXPECT_EQ(search_term_, last_full_text()); |
478 | 488 |
479 EXPECT_EQ(INSTANT_COMPLETE_DELAYED, | 489 EXPECT_EQ(INSTANT_COMPLETE_DELAYED, |
480 omnibox()->model()->instant_complete_behavior()); | 490 omnibox()->model()->instant_complete_behavior()); |
481 EXPECT_EQ("def", UTF16ToUTF8(omnibox()->GetText())); | 491 EXPECT_EQ(ASCIIToUTF16("defg"), omnibox()->GetText()); |
482 } | 492 } |
483 | 493 |
484 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNow)) { | 494 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(InstantCompleteNow)) { |
485 ASSERT_TRUE(test_server()->Start()); | 495 ASSERT_TRUE(test_server()->Start()); |
486 EnableInstant(); | 496 EnableInstant(); |
487 SetupInstantProvider("instant.html"); | 497 SetupInstantProvider("instant.html"); |
488 DetermineInstantSupport(); | 498 DetermineInstantSupport(); |
489 | 499 |
490 ASSERT_TRUE(SetSuggestionsJavascriptArgument( | 500 ASSERT_TRUE(SetSuggestionsJavascriptArgument( |
491 "{suggestions:[{value:'defg'}],complete_behavior:'now'}")); | 501 "{suggestions:[{value:'defg'}],complete_behavior:'now'}")); |
492 SearchAndWaitForPreviewToShow(); | 502 SearchAndWaitForPreviewToShow(); |
493 EXPECT_EQ("defg", GetSuggestion()); | 503 EXPECT_EQ(ASCIIToUTF16("defg"), last_full_text()); |
494 | 504 |
495 EXPECT_EQ(INSTANT_COMPLETE_NOW, | 505 EXPECT_EQ(INSTANT_COMPLETE_NOW, |
496 omnibox()->model()->instant_complete_behavior()); | 506 omnibox()->model()->instant_complete_behavior()); |
497 EXPECT_EQ("defg", UTF16ToUTF8(omnibox()->GetText())); | 507 EXPECT_EQ(ASCIIToUTF16("defg"), omnibox()->GetText()); |
498 } | 508 } |
499 | 509 |
500 // Verifies that instant previews aren't shown for crash URLs. | 510 // Verifies that instant previews aren't shown for crash URLs. |
501 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(CrashUrlCancelsInstant)) { | 511 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(CrashUrlCancelsInstant)) { |
502 ASSERT_TRUE(test_server()->Start()); | 512 ASSERT_TRUE(test_server()->Start()); |
503 EnableInstant(); | 513 EnableInstant(); |
504 SetupInstantProvider("instant.html"); | 514 SetupInstantProvider("instant.html"); |
505 | 515 |
506 omnibox()->SetUserText(ASCIIToUTF16(chrome::kChromeUICrashURL)); | 516 SetOmniboxFocusAndUserText(ASCIIToUTF16(chrome::kChromeUICrashURL)); |
507 EXPECT_FALSE(preview()); | 517 EXPECT_FALSE(preview()); |
508 } | 518 } |
509 | 519 |
510 // Tests that instant doesn't fire for intranet paths that look like searches. | 520 // Tests that instant doesn't fire for intranet paths that look like searches. |
511 // http://crbug.com/99836 | 521 // http://crbug.com/99836 |
512 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(IntranetPathLooksLikeSearch)) { | 522 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(IntranetPathLooksLikeSearch)) { |
513 ASSERT_TRUE(test_server()->Start()); | 523 ASSERT_TRUE(test_server()->Start()); |
514 EnableInstant(); | 524 EnableInstant(); |
515 SetupInstantProvider("instant.html"); | 525 SetupInstantProvider("instant.html"); |
516 | 526 |
(...skipping 10 matching lines...) Expand all Loading... |
527 EXPECT_FALSE(preview()); | 537 EXPECT_FALSE(preview()); |
528 } | 538 } |
529 | 539 |
530 // Verifies that instant previews aren't shown for non-search URLs. | 540 // Verifies that instant previews aren't shown for non-search URLs. |
531 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(ShowPreviewNonSearch)) { | 541 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(ShowPreviewNonSearch)) { |
532 ASSERT_TRUE(test_server()->Start()); | 542 ASSERT_TRUE(test_server()->Start()); |
533 EnableInstant(); | 543 EnableInstant(); |
534 SetupInstantProvider("instant.html"); | 544 SetupInstantProvider("instant.html"); |
535 | 545 |
536 GURL url(test_server()->GetURL("files/empty.html")); | 546 GURL url(test_server()->GetURL("files/empty.html")); |
537 omnibox()->SetUserText(UTF8ToUTF16(url.spec())); | 547 SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec())); |
538 EXPECT_FALSE(preview()); | 548 EXPECT_FALSE(preview()); |
539 } | 549 } |
540 | 550 |
541 // Transition from non-search to search and make sure everything works. | 551 // Transition from non-search to search and make sure everything works. |
542 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(NonSearchToSearch)) { | 552 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(NonSearchToSearch)) { |
543 ASSERT_TRUE(test_server()->Start()); | 553 ASSERT_TRUE(test_server()->Start()); |
544 EnableInstant(); | 554 EnableInstant(); |
545 SetupInstantProvider("instant.html"); | 555 SetupInstantProvider("instant.html"); |
546 | 556 |
547 // Load a non-search URL. | 557 // Load a non-search URL. |
548 GURL url(test_server()->GetURL("files/empty.html")); | 558 GURL url(test_server()->GetURL("files/empty.html")); |
549 omnibox()->SetUserText(UTF8ToUTF16(url.spec())); | 559 SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec())); |
550 EXPECT_FALSE(preview()); | 560 EXPECT_FALSE(preview()); |
551 | 561 |
552 // Now type in some search text. | 562 // Now type in some search text. |
553 DetermineInstantSupport(); | 563 DetermineInstantSupport(); |
554 | 564 |
555 // We should now have a preview, but it shouldn't be showing yet, because we | 565 // We should now have a preview, but it shouldn't be showing yet, because we |
556 // haven't gotten back suggestions. | 566 // haven't gotten back suggestions. |
557 EXPECT_TRUE(preview()); | 567 EXPECT_TRUE(preview()); |
558 EXPECT_FALSE(loader()->ready()); | 568 EXPECT_FALSE(is_showing()); |
559 EXPECT_FALSE(instant()->is_displayable()); | 569 EXPECT_TRUE(instant()->IsCurrent()); |
560 EXPECT_FALSE(instant()->IsCurrent()); | |
561 | 570 |
562 // Reset the user text so that the page is told the text changed. | 571 // Reset the user text so that the page is told the text changed. |
563 // | 572 // |
564 // Typing into the omnibox sends onchange() to the page, which responds with | 573 // Typing into the omnibox sends onchange() to the page, which responds with |
565 // suggestions, which causes the preview to be shown. However, when we called | 574 // suggestions, which causes the preview to be shown. However, when we called |
566 // DetermineInstantSupport(), the resulting onchange was dropped on the floor | 575 // DetermineInstantSupport(), the resulting onchange was dropped on the floor |
567 // because the page wasn't loaded yet. This is fine (the user may type before | 576 // because the page wasn't loaded yet. This is fine (the user may type before |
568 // the page loads too). To handle this, we explicitly call onchange after the | 577 // the page loads too). To handle this, we explicitly call onchange after the |
569 // page loads (see initScript in searchbox_extension.cc). The search provider | 578 // page loads (see initScript in searchbox_extension.cc). The search provider |
570 // used in this test (instant.html) doesn't support initScript, so we have to | 579 // used in this test (instant.html) doesn't support initScript, so we have to |
571 // trigger an onchange ourselves. | 580 // trigger an onchange ourselves. |
572 SearchAndWaitForPreviewToShow(); | 581 SearchAndWaitForPreviewToShow(); |
573 | 582 |
574 // We should now be showing the preview. | 583 // We should now be showing the preview. |
575 EXPECT_TRUE(preview()); | 584 EXPECT_TRUE(preview()); |
576 EXPECT_TRUE(loader()->ready()); | 585 EXPECT_TRUE(is_showing()); |
577 EXPECT_TRUE(instant()->is_displayable()); | |
578 EXPECT_TRUE(instant()->IsCurrent()); | 586 EXPECT_TRUE(instant()->IsCurrent()); |
579 | 587 |
580 content::RenderWidgetHostView* rwhv = | 588 content::RenderWidgetHostView* rwhv = |
581 preview()->web_contents()->GetRenderWidgetHostView(); | 589 preview()->web_contents()->GetRenderWidgetHostView(); |
582 EXPECT_TRUE(rwhv); | 590 EXPECT_TRUE(rwhv); |
583 EXPECT_TRUE(rwhv->IsShowing()); | 591 EXPECT_TRUE(rwhv->IsShowing()); |
584 } | 592 } |
585 | 593 |
586 // Transition from search to non-search and make sure instant isn't displayable. | 594 // Transition from search to non-search and make sure instant isn't displayable. |
587 // See bug http://crbug.com/100368 for details. | 595 // See bug http://crbug.com/100368 for details. |
588 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchToNonSearch)) { | 596 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchToNonSearch)) { |
589 ASSERT_TRUE(test_server()->Start()); | 597 ASSERT_TRUE(test_server()->Start()); |
590 EnableInstant(); | 598 EnableInstant(); |
591 SetupInstantProvider("instant.html"); | 599 SetupInstantProvider("instant.html"); |
592 | 600 |
593 ui_test_utils::WindowedNotificationObserver instant_support_observer( | 601 ui_test_utils::WindowedNotificationObserver instant_support_observer( |
594 chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED, | 602 chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED, |
595 content::NotificationService::AllSources()); | 603 content::NotificationService::AllSources()); |
596 | 604 |
597 // Type in some search text. | 605 // Type in some search text. |
598 omnibox()->SetUserText(ASCIIToUTF16("def")); | 606 SetOmniboxFocusAndUserText(search_term_); |
599 | 607 |
600 // Load a non search URL. Don't wait for the preview to navigate. It'll still | 608 // Load a non search URL. Don't wait for the preview to navigate. It'll still |
601 // end up loading in the background. | 609 // end up loading in the background. |
602 GURL url(test_server()->GetURL("files/empty.html")); | 610 GURL url(test_server()->GetURL("files/empty.html")); |
603 omnibox()->SetUserText(UTF8ToUTF16(url.spec())); | 611 SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec())); |
604 | 612 |
605 instant_support_observer.Wait(); | 613 instant_support_observer.Wait(); |
606 | 614 |
607 // We should now have a preview, but it shouldn't be showing yet. | 615 // We should now have a preview, but it shouldn't be showing yet. |
608 EXPECT_TRUE(preview()); | 616 EXPECT_TRUE(preview()); |
609 EXPECT_FALSE(loader()->ready()); | 617 EXPECT_FALSE(is_showing()); |
610 EXPECT_FALSE(instant()->is_displayable()); | |
611 EXPECT_FALSE(instant()->IsCurrent()); | 618 EXPECT_FALSE(instant()->IsCurrent()); |
612 | 619 |
613 // Send onchange so that the page sends up suggestions. See the comments in | 620 // Send onchange so that the page sends up suggestions. See the comments in |
614 // NonSearchToSearch for why this is needed. | 621 // NonSearchToSearch for why this is needed. |
615 ASSERT_TRUE(ui_test_utils::ExecuteJavaScript( | 622 ASSERT_TRUE(ui_test_utils::ExecuteJavaScript( |
616 preview()->web_contents()->GetRenderViewHost(), std::wstring(), | 623 preview()->web_contents()->GetRenderViewHost(), std::wstring(), |
617 L"window.chrome.searchBox.onchange();")); | 624 L"window.chrome.searchBox.onchange();")); |
618 ASSERT_TRUE(WaitForMessageToBeProcessedByRenderer()); | 625 ASSERT_TRUE(WaitForMessageToBeProcessedByRenderer()); |
619 | 626 |
620 // Instant should be active, but not displaying. | 627 // Instant should be active, but not displaying. |
621 EXPECT_TRUE(preview()); | 628 EXPECT_TRUE(preview()); |
622 EXPECT_TRUE(loader()->ready()); | 629 EXPECT_FALSE(is_showing()); |
623 EXPECT_FALSE(instant()->is_displayable()); | |
624 EXPECT_FALSE(instant()->IsCurrent()); | 630 EXPECT_FALSE(instant()->IsCurrent()); |
625 } | 631 } |
626 | 632 |
627 // Makes sure that if the server doesn't support the instant API we don't show | 633 // Makes sure that if the server doesn't support the instant API we don't show |
628 // anything. | 634 // anything. |
629 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchServerDoesntSupportInstant)) { | 635 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(SearchServerDoesntSupportInstant)) { |
630 ASSERT_TRUE(test_server()->Start()); | 636 ASSERT_TRUE(test_server()->Start()); |
631 EnableInstant(); | 637 EnableInstant(); |
632 SetupInstantProvider("empty.html"); | 638 SetupInstantProvider("empty.html"); |
633 | 639 |
634 ui_test_utils::WindowedNotificationObserver tab_closed_observer( | 640 ui_test_utils::WindowedNotificationObserver tab_closed_observer( |
635 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, | 641 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
636 content::NotificationService::AllSources()); | 642 content::NotificationService::AllSources()); |
637 | 643 |
638 omnibox()->SetUserText(ASCIIToUTF16("d")); | 644 SetOmniboxFocusAndUserText(ASCIIToUTF16("d")); |
639 EXPECT_TRUE(preview()); | 645 EXPECT_TRUE(preview()); |
640 | 646 |
641 // When the response comes back that the page doesn't support instant the tab | 647 // When the response comes back that the page doesn't support instant the tab |
642 // should be closed. | 648 // should be closed. |
643 tab_closed_observer.Wait(); | 649 tab_closed_observer.Wait(); |
644 EXPECT_FALSE(preview()); | 650 EXPECT_FALSE(preview()); |
645 } | 651 } |
646 | 652 |
647 // Verifies transitioning from loading a non-search string to a search string | 653 // Verifies transitioning from loading a non-search string to a search string |
648 // with the provider not supporting instant works (meaning we don't display | 654 // with the provider not supporting instant works (meaning we don't display |
649 // anything). | 655 // anything). |
650 IN_PROC_BROWSER_TEST_F(InstantTest, | 656 IN_PROC_BROWSER_TEST_F(InstantTest, |
651 MAYBE(NonSearchToSearchDoesntSupportInstant)) { | 657 MAYBE(NonSearchToSearchDoesntSupportInstant)) { |
652 ASSERT_TRUE(test_server()->Start()); | 658 ASSERT_TRUE(test_server()->Start()); |
653 EnableInstant(); | 659 EnableInstant(); |
654 SetupInstantProvider("empty.html"); | 660 SetupInstantProvider("empty.html"); |
655 | 661 |
656 GURL url(test_server()->GetURL("files/empty.html")); | 662 GURL url(test_server()->GetURL("files/empty.html")); |
657 omnibox()->SetUserText(UTF8ToUTF16(url.spec())); | 663 SetOmniboxFocusAndUserText(UTF8ToUTF16(url.spec())); |
658 EXPECT_FALSE(preview()); | 664 EXPECT_FALSE(preview()); |
659 | 665 |
660 ui_test_utils::WindowedNotificationObserver tab_closed_observer( | 666 ui_test_utils::WindowedNotificationObserver tab_closed_observer( |
661 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, | 667 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
662 content::NotificationService::AllSources()); | 668 content::NotificationService::AllSources()); |
663 | 669 |
664 // Now type in some search text. | 670 // Now type in some search text. |
665 omnibox()->SetUserText(ASCIIToUTF16("d")); | 671 SetOmniboxFocusAndUserText(ASCIIToUTF16("d")); |
666 EXPECT_TRUE(preview()); | 672 EXPECT_TRUE(preview()); |
667 | 673 |
668 // When the response comes back that the page doesn't support instant the tab | 674 // When the response comes back that the page doesn't support instant the tab |
669 // should be closed. | 675 // should be closed. |
670 tab_closed_observer.Wait(); | 676 tab_closed_observer.Wait(); |
671 EXPECT_FALSE(preview()); | 677 EXPECT_FALSE(preview()); |
672 } | 678 } |
673 | 679 |
674 // Verifies the page was told a non-zero height. | 680 // Verifies the page was told a non-zero height. |
675 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(ValidHeight)) { | 681 // TODO(dominich): This seems to be a dumb test. Confirm that it's dumb. |
| 682 IN_PROC_BROWSER_TEST_F(InstantTest, DISABLED_ValidHeight) { |
676 ASSERT_TRUE(test_server()->Start()); | 683 ASSERT_TRUE(test_server()->Start()); |
677 EnableInstant(); | 684 EnableInstant(); |
678 SetupInstantProvider("instant.html"); | 685 SetupInstantProvider("instant.html"); |
679 DetermineInstantSupport(); | 686 DetermineInstantSupport(); |
680 SearchAndWaitForPreviewToShow(); | 687 SearchAndWaitForPreviewToShow(); |
681 | 688 |
682 int height = -1; | 689 int height = -1; |
683 | 690 |
684 // searchBox height is not yet set during initial load. | 691 // searchBox height is not yet set during initial load. |
685 ASSERT_TRUE(GetIntFromJavascript(preview()->web_contents(), | 692 ASSERT_TRUE(GetIntFromJavascript(preview()->web_contents(), |
(...skipping 23 matching lines...) Expand all Loading... |
709 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(DontPersistSearchbox)) { | 716 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(DontPersistSearchbox)) { |
710 ASSERT_TRUE(test_server()->Start()); | 717 ASSERT_TRUE(test_server()->Start()); |
711 EnableInstant(); | 718 EnableInstant(); |
712 SetupInstantProvider("instant.html"); | 719 SetupInstantProvider("instant.html"); |
713 DetermineInstantSupport(); | 720 DetermineInstantSupport(); |
714 SearchAndWaitForPreviewToShow(); | 721 SearchAndWaitForPreviewToShow(); |
715 | 722 |
716 std::string value; | 723 std::string value; |
717 ASSERT_TRUE(GetStringFromJavascript(preview()->web_contents(), | 724 ASSERT_TRUE(GetStringFromJavascript(preview()->web_contents(), |
718 "window.chrome.searchBox.value", &value)); | 725 "window.chrome.searchBox.value", &value)); |
719 EXPECT_EQ("def", value); | 726 EXPECT_EQ(search_term_, UTF8ToUTF16(value)); |
720 | 727 |
721 // Commit the preview. | 728 // Commit the preview. |
722 ASSERT_TRUE(PressEnter()); | 729 ASSERT_TRUE(PressEnter()); |
723 EXPECT_FALSE(preview()); | 730 EXPECT_FALSE(preview()); |
724 | 731 |
725 // The searchBox actually gets cleared on commit. | 732 // The searchBox actually gets cleared on commit. |
726 ASSERT_TRUE(GetStringFromJavascript(chrome::GetActiveWebContents(browser()), | 733 ASSERT_TRUE(GetStringFromJavascript(chrome::GetActiveWebContents(browser()), |
727 "window.chrome.searchBox.value", &value)); | 734 "window.chrome.searchBox.value", &value)); |
728 EXPECT_EQ("", value); | 735 EXPECT_EQ("", value); |
729 | 736 |
(...skipping 30 matching lines...) Expand all Loading... |
760 | 767 |
761 // Focusing the omnibox should cause instant to be preloaded. | 768 // Focusing the omnibox should cause instant to be preloaded. |
762 ui_test_utils::WindowedNotificationObserver instant_support_observer( | 769 ui_test_utils::WindowedNotificationObserver instant_support_observer( |
763 chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED, | 770 chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED, |
764 content::NotificationService::AllSources()); | 771 content::NotificationService::AllSources()); |
765 browser()->window()->GetLocationBar()->FocusLocation(false); | 772 browser()->window()->GetLocationBar()->FocusLocation(false); |
766 instant_support_observer.Wait(); | 773 instant_support_observer.Wait(); |
767 | 774 |
768 // Instant should have a preview, but not display it. | 775 // Instant should have a preview, but not display it. |
769 EXPECT_TRUE(preview()); | 776 EXPECT_TRUE(preview()); |
770 EXPECT_FALSE(instant()->is_displayable()); | 777 EXPECT_FALSE(is_showing()); |
771 EXPECT_FALSE(instant()->IsCurrent()); | 778 EXPECT_FALSE(instant()->IsCurrent()); |
772 ASSERT_TRUE(CheckVisibilityIs(preview()->web_contents(), false)); | 779 ASSERT_TRUE(CheckVisibilityIs(preview()->web_contents(), false)); |
773 | 780 |
774 // Adding a new tab shouldn't delete (or recreate) the TabContents. | 781 // Adding a new tab shouldn't delete (or recreate) the TabContents. |
775 TabContents* preview_tab = preview(); | 782 TabContents* preview_tab = preview(); |
776 AddBlankTabAndShow(browser()); | 783 AddBlankTabAndShow(browser()); |
777 EXPECT_EQ(preview_tab, preview()); | 784 EXPECT_EQ(preview_tab, preview()); |
778 | 785 |
779 // Doing a search should still use the same loader for the preview. | 786 // Doing a search should still use the same loader for the preview. |
780 SearchAndWaitForPreviewToShow(); | 787 SearchAndWaitForPreviewToShow(); |
781 EXPECT_EQ(preview_tab, preview()); | 788 EXPECT_EQ(preview_tab, preview()); |
782 | 789 |
783 // Verify that the preview is in fact showing instant search. | 790 // Verify that the preview is in fact showing instant search. |
784 EXPECT_TRUE(instant()->is_displayable()); | 791 EXPECT_TRUE(is_showing()); |
785 EXPECT_TRUE(instant()->IsCurrent()); | 792 EXPECT_TRUE(instant()->IsCurrent()); |
786 ASSERT_TRUE(CheckVisibilityIs(preview()->web_contents(), true)); | 793 ASSERT_TRUE(CheckVisibilityIs(preview()->web_contents(), true)); |
787 } | 794 } |
788 | 795 |
789 // Tests that the instant search page's visibility is set correctly. | 796 // Tests that the instant search page's visibility is set correctly. |
790 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(PageVisibilityTest)) { | 797 IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE(PageVisibilityTest)) { |
791 ASSERT_TRUE(test_server()->Start()); | 798 ASSERT_TRUE(test_server()->Start()); |
792 EnableInstant(); | 799 EnableInstant(); |
793 SetupInstantProvider("instant.html"); | 800 SetupInstantProvider("instant.html"); |
794 | 801 |
795 // Initially navigate to the empty page which should be visible. | 802 // Initially navigate to the empty page which should be visible. |
796 ui_test_utils::NavigateToURL(browser(), test_server()->GetURL("")); | 803 ui_test_utils::NavigateToURL(browser(), test_server()->GetURL("")); |
797 WebContents* initial_contents = chrome::GetActiveWebContents(browser()); | 804 WebContents* initial_contents = chrome::GetActiveWebContents(browser()); |
798 | 805 |
799 ASSERT_TRUE(CheckVisibilityIs(initial_contents, true)); | 806 ASSERT_TRUE(CheckVisibilityIs(initial_contents, true)); |
800 | 807 |
801 // Type a search term and wait for the preview to appear. | 808 // Type a search term and wait for the preview to appear. |
802 browser()->window()->GetLocationBar()->FocusLocation(false); | 809 browser()->window()->GetLocationBar()->FocusLocation(false); |
803 DetermineInstantSupport(); | 810 DetermineInstantSupport(); |
804 SearchAndWaitForPreviewToShow(); | 811 SearchAndWaitForPreviewToShow(); |
805 WebContents* preview_contents = preview()->web_contents(); | 812 WebContents* preview_contents = preview()->web_contents(); |
806 | 813 |
807 ASSERT_TRUE(CheckVisibilityIs(preview_contents, true)); | 814 ASSERT_TRUE(CheckVisibilityIs(preview_contents, true)); |
808 ASSERT_TRUE(CheckVisibilityIs(initial_contents, false)); | 815 ASSERT_TRUE(CheckVisibilityIs(initial_contents, false)); |
809 | 816 |
810 // Deleting the user text should hide the preview. | 817 // Deleting the user text should hide the preview. |
811 omnibox()->SetUserText(string16()); | 818 SetOmniboxFocusAndUserText(string16()); |
812 ASSERT_TRUE(CheckVisibilityIs(preview_contents, false)); | 819 ASSERT_TRUE(CheckVisibilityIs(preview_contents, false)); |
813 ASSERT_TRUE(CheckVisibilityIs(initial_contents, true)); | 820 ASSERT_TRUE(CheckVisibilityIs(initial_contents, true)); |
814 | 821 |
815 // Set the user text back and we should see the preview again. | 822 // Set the user text back and we should see the preview again. |
816 omnibox()->SetUserText(ASCIIToUTF16("def")); | 823 // TODO(dominich): This bit is not working. Copy-pasting allows us to see this |
| 824 // in Chrome too. |
| 825 SetOmniboxFocusAndUserText(ASCIIToUTF16("def")); |
817 ASSERT_TRUE(CheckVisibilityIs(preview_contents, true)); | 826 ASSERT_TRUE(CheckVisibilityIs(preview_contents, true)); |
818 ASSERT_TRUE(CheckVisibilityIs(initial_contents, false)); | 827 ASSERT_TRUE(CheckVisibilityIs(initial_contents, false)); |
819 | 828 |
820 // Commit the preview. | 829 // Commit the preview. |
821 ASSERT_TRUE(PressEnter()); | 830 ASSERT_TRUE(PressEnter()); |
822 EXPECT_EQ(preview_contents, chrome::GetActiveWebContents(browser())); | 831 EXPECT_EQ(preview_contents, chrome::GetActiveWebContents(browser())); |
823 ASSERT_TRUE(CheckVisibilityIs(preview_contents, true)); | 832 ASSERT_TRUE(CheckVisibilityIs(preview_contents, true)); |
824 } | 833 } |
825 | 834 |
826 // Tests that the task manager identifies instant's preview tab correctly. | 835 // Tests that the task manager identifies instant's preview tab correctly. |
(...skipping 10 matching lines...) Expand all Loading... |
837 DetermineInstantSupport(); | 846 DetermineInstantSupport(); |
838 SearchAndWaitForPreviewToShow(); | 847 SearchAndWaitForPreviewToShow(); |
839 | 848 |
840 // Now there should be three rows, the third being the instant preview. | 849 // Now there should be three rows, the third being the instant preview. |
841 TaskManagerBrowserTestUtil::WaitForResourceChange(3); | 850 TaskManagerBrowserTestUtil::WaitForResourceChange(3); |
842 string16 prefix = l10n_util::GetStringFUTF16( | 851 string16 prefix = l10n_util::GetStringFUTF16( |
843 IDS_TASK_MANAGER_INSTANT_PREVIEW_PREFIX, string16()); | 852 IDS_TASK_MANAGER_INSTANT_PREVIEW_PREFIX, string16()); |
844 string16 title = task_manager->GetResourceTitle(2); | 853 string16 title = task_manager->GetResourceTitle(2); |
845 EXPECT_TRUE(StartsWith(title, prefix, true)) << title << " vs " << prefix; | 854 EXPECT_TRUE(StartsWith(title, prefix, true)) << title << " vs " << prefix; |
846 } | 855 } |
OLD | NEW |