Commit 429c4619 authored by Gauthier Ambard's avatar Gauthier Ambard Committed by Commit Bot

Fix OmniboxPerfTest.TestTypeOneCharInTextField

This CL fixes the OmniboxPerfTest.TestTypeOneCharInTextField test which
was failing because it was using the WebToolbarController even if the
flag to disable it is turned on. It was creating a conflict.

Bug: 806685
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: If846ac3ecf0963700da4e1dd71156037c87653c4
Reviewed-on: https://chromium-review.googlesource.com/891018Reviewed-by: default avatarSylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Gauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532385}
parent 3adbed21
...@@ -544,6 +544,7 @@ source_set("perf_tests") { ...@@ -544,6 +544,7 @@ source_set("perf_tests") {
"//ios/chrome/browser/tabs:tabs_internal", "//ios/chrome/browser/tabs:tabs_internal",
"//ios/chrome/browser/ui/omnibox:omnibox_internal", "//ios/chrome/browser/ui/omnibox:omnibox_internal",
"//ios/chrome/browser/ui/toolbar", "//ios/chrome/browser/ui/toolbar",
"//ios/chrome/browser/ui/toolbar/clean:toolbar",
"//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util",
"//ios/chrome/browser/web_state_list", "//ios/chrome/browser/web_state_list",
"//ios/chrome/browser/web_state_list:test_support", "//ios/chrome/browser/web_state_list:test_support",
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
#include "ios/chrome/browser/search_engines/template_url_service_factory.h" #include "ios/chrome/browser/search_engines/template_url_service_factory.h"
#import "ios/chrome/browser/ui/omnibox/omnibox_text_field_ios.h" #import "ios/chrome/browser/ui/omnibox/omnibox_text_field_ios.h"
#import "ios/chrome/browser/ui/toolbar/clean/toolbar_coordinator.h"
#include "ios/chrome/browser/ui/toolbar/toolbar_model_delegate_ios.h" #include "ios/chrome/browser/ui/toolbar/toolbar_model_delegate_ios.h"
#include "ios/chrome/browser/ui/toolbar/toolbar_model_impl_ios.h" #include "ios/chrome/browser/ui/toolbar/toolbar_model_impl_ios.h"
#import "ios/chrome/browser/ui/toolbar/web_toolbar_controller.h" #import "ios/chrome/browser/ui/toolbar/web_toolbar_controller.h"
...@@ -99,20 +100,17 @@ class OmniboxPerfTest : public PerfTest { ...@@ -99,20 +100,17 @@ class OmniboxPerfTest : public PerfTest {
// The OCMOCK_VALUE macro doesn't like std::unique_ptr, but it works just // The OCMOCK_VALUE macro doesn't like std::unique_ptr, but it works just
// fine if a temporary variable is used. // fine if a temporary variable is used.
ToolbarModelIOS* model_for_mock = toolbar_model_ios_.get(); ToolbarModelIOS* model_for_mock = toolbar_model_ios_.get();
web::WebState* web_state_for_mock = web_state_list_->GetWebStateAt(0); id toolbarDelegate = OCMProtocolMock(@protocol(ToolbarCoordinatorDelegate));
id webToolbarDelegate = [[[toolbarDelegate stub] andReturnValue:OCMOCK_VALUE(model_for_mock)]
[OCMockObject niceMockForProtocol:@protocol(WebToolbarDelegate)];
[[[webToolbarDelegate stub] andReturnValue:OCMOCK_VALUE(model_for_mock)]
toolbarModelIOS]; toolbarModelIOS];
[[[webToolbarDelegate stub] andReturnValue:OCMOCK_VALUE(web_state_for_mock)]
currentWebState]; coordinator_ = [[ToolbarCoordinator alloc] init];
id urlLoader = [OCMockObject niceMockForProtocol:@protocol(UrlLoader)]; coordinator_.delegate = toolbarDelegate;
toolbar_ = [[WebToolbarController alloc] coordinator_.browserState = chrome_browser_state_.get();
initWithDelegate:webToolbarDelegate coordinator_.webStateList = web_state_list_.get();
urlLoader:urlLoader [coordinator_ start];
browserState:chrome_browser_state_.get()
dispatcher:nil]; UIView* toolbarView = coordinator_.viewController.view;
UIView* toolbarView = [toolbar_ view];
CGRect toolbarFrame = toolbarView.frame; CGRect toolbarFrame = toolbarView.frame;
toolbarFrame.origin = CGPointZero; toolbarFrame.origin = CGPointZero;
toolbarFrame.size.width = screenBounds.size.width; toolbarFrame.size.width = screenBounds.size.width;
...@@ -120,7 +118,11 @@ class OmniboxPerfTest : public PerfTest { ...@@ -120,7 +118,11 @@ class OmniboxPerfTest : public PerfTest {
// Add toolbar to window. // Add toolbar to window.
[window_ addSubview:toolbarView]; [window_ addSubview:toolbarView];
AddNamedGuide(kOmniboxGuide, window_); AddNamedGuide(kOmniboxGuide, window_);
[toolbar_ didMoveToParentViewController:nil]; AddNamedGuide(kBackButtonGuide, window_);
AddNamedGuide(kForwardButtonGuide, window_);
AddNamedGuide(kToolsMenuGuide, window_);
AddNamedGuide(kTabSwitcherGuide, window_);
[coordinator_.viewController didMoveToParentViewController:nil];
base::test::ios::WaitUntilCondition(^bool() { base::test::ios::WaitUntilCondition(^bool() {
return IsToolbarLoaded(window_); return IsToolbarLoaded(window_);
}); });
...@@ -128,11 +130,11 @@ class OmniboxPerfTest : public PerfTest { ...@@ -128,11 +130,11 @@ class OmniboxPerfTest : public PerfTest {
void TearDown() override { void TearDown() override {
// Remove toolbar from window. // Remove toolbar from window.
[[toolbar_ view] removeFromSuperview]; [coordinator_.viewController.view removeFromSuperview];
base::test::ios::WaitUntilCondition(^bool() { base::test::ios::WaitUntilCondition(^bool() {
return !IsToolbarLoaded(window_); return !IsToolbarLoaded(window_);
}); });
[toolbar_ browserStateDestroyed]; [coordinator_ stop];
PerfTest::TearDown(); PerfTest::TearDown();
} }
...@@ -221,7 +223,7 @@ class OmniboxPerfTest : public PerfTest { ...@@ -221,7 +223,7 @@ class OmniboxPerfTest : public PerfTest {
std::unique_ptr<WebStateList> web_state_list_; std::unique_ptr<WebStateList> web_state_list_;
std::unique_ptr<ToolbarModelDelegateIOS> toolbar_model_delegate_; std::unique_ptr<ToolbarModelDelegateIOS> toolbar_model_delegate_;
std::unique_ptr<ToolbarModelIOS> toolbar_model_ios_; std::unique_ptr<ToolbarModelIOS> toolbar_model_ios_;
WebToolbarController* toolbar_; ToolbarCoordinator* coordinator_;
UIWindow* window_; UIWindow* window_;
KeyboardAppearanceListener* keyboard_listener_; KeyboardAppearanceListener* keyboard_listener_;
}; };
...@@ -231,7 +233,7 @@ class OmniboxPerfTest : public PerfTest { ...@@ -231,7 +233,7 @@ class OmniboxPerfTest : public PerfTest {
TEST_F(OmniboxPerfTest, TestTextFieldDidBeginEditing) { TEST_F(OmniboxPerfTest, TestTextFieldDidBeginEditing) {
LogPerfTiming("Keyboard preload", PreLoadKeyboard()); LogPerfTiming("Keyboard preload", PreLoadKeyboard());
OmniboxTextFieldIOS* textField = (OmniboxTextFieldIOS*)FindViewByClass( OmniboxTextFieldIOS* textField = (OmniboxTextFieldIOS*)FindViewByClass(
[toolbar_ view], [OmniboxTextFieldIOS class]); coordinator_.viewController.view, [OmniboxTextFieldIOS class]);
// Time how long it takes to "focus" on omnibox. // Time how long it takes to "focus" on omnibox.
RepeatTimedRuns("Begin editing", RepeatTimedRuns("Begin editing",
...@@ -247,7 +249,7 @@ TEST_F(OmniboxPerfTest, TestTextFieldDidBeginEditing) { ...@@ -247,7 +249,7 @@ TEST_F(OmniboxPerfTest, TestTextFieldDidBeginEditing) {
// into the Omnibox. // into the Omnibox.
TEST_F(OmniboxPerfTest, TestTypeOneCharInTextField) { TEST_F(OmniboxPerfTest, TestTypeOneCharInTextField) {
OmniboxTextFieldIOS* textField = (OmniboxTextFieldIOS*)FindViewByClass( OmniboxTextFieldIOS* textField = (OmniboxTextFieldIOS*)FindViewByClass(
[toolbar_ view], [OmniboxTextFieldIOS class]); coordinator_.viewController.view, [OmniboxTextFieldIOS class]);
RepeatTimedRuns("Type first character", RepeatTimedRuns("Type first character",
^base::TimeDelta(int index) { ^base::TimeDelta(int index) {
EnableKeyboard(textField); EnableKeyboard(textField);
...@@ -264,7 +266,7 @@ TEST_F(OmniboxPerfTest, TestTypeOneCharInTextField) { ...@@ -264,7 +266,7 @@ TEST_F(OmniboxPerfTest, TestTypeOneCharInTextField) {
// TODO(crbug.com/799488): Re-enable this test. // TODO(crbug.com/799488): Re-enable this test.
TEST_F(OmniboxPerfTest, DISABLED_TestTypingInTextField) { TEST_F(OmniboxPerfTest, DISABLED_TestTypingInTextField) {
OmniboxTextFieldIOS* textField = (OmniboxTextFieldIOS*)FindViewByClass( OmniboxTextFieldIOS* textField = (OmniboxTextFieldIOS*)FindViewByClass(
[toolbar_ view], [OmniboxTextFieldIOS class]); coordinator_.viewController.view, [OmniboxTextFieldIOS class]);
// The characters to type into the omnibox text field. // The characters to type into the omnibox text field.
NSArray* inputCharacters = NSArray* inputCharacters =
[NSArray arrayWithObjects:@"g", @"o", @"o", @"g", @"l", @"e", nil]; [NSArray arrayWithObjects:@"g", @"o", @"o", @"g", @"l", @"e", nil];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment