summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordzhioev@google.com <dzhioev@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-23 12:54:23 +0000
committerdzhioev@google.com <dzhioev@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-23 12:54:23 +0000
commit603717992e0d57a85ace487a83386803f1a78e4a (patch)
tree248a53826f07dc7855ade53223c2be4d38acd44d
parent008cf4ea2e2294513f33967da1deb57dff403273 (diff)
downloadchromium_src-603717992e0d57a85ace487a83386803f1a78e4a.zip
chromium_src-603717992e0d57a85ace487a83386803f1a78e4a.tar.gz
chromium_src-603717992e0d57a85ace487a83386803f1a78e4a.tar.bz2
Merge 241933 "Created browser test for first-run UI."
Merge attempt 2. > Created browser test for first-run UI. > > BUG=312474 > TEST=browser_tests --gtest_filter=FirstRunUIBrowserTest.* > > Review URL: https://codereview.chromium.org/101543008 TBR=dzhioev@chromium.org Review URL: https://codereview.chromium.org/120713002 git-svn-id: svn://svn.chromium.org/chrome/branches/1750/src@242374 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/first_run/first_run_controller.cc9
-rw-r--r--chrome/browser/chromeos/first_run/first_run_controller.h14
-rw-r--r--chrome/browser/chromeos/first_run/first_run_view.cc4
-rw-r--r--chrome/browser/chromeos/first_run/first_run_view.h2
-rw-r--r--chrome/browser/chromeos/login/login_manager_test.cc9
-rw-r--r--chrome/browser/chromeos/login/login_manager_test.h2
-rw-r--r--chrome/browser/chromeos/login/test/oobe_screen_waiter.h1
-rw-r--r--chrome/browser/resources/chromeos/first_run/first_run.js5
-rw-r--r--chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h5
-rw-r--r--chrome/browser/ui/webui/chromeos/first_run/first_run_handler.cc10
-rw-r--r--chrome/browser/ui/webui/chromeos/first_run/first_run_handler.h1
-rw-r--r--chrome/chrome_tests.gypi1
-rw-r--r--chrome/chrome_tests_unit.gypi2
13 files changed, 54 insertions, 11 deletions
diff --git a/chrome/browser/chromeos/first_run/first_run_controller.cc b/chrome/browser/chromeos/first_run/first_run_controller.cc
index b1775e4e..65ed426 100644
--- a/chrome/browser/chromeos/first_run/first_run_controller.cc
+++ b/chrome/browser/chromeos/first_run/first_run_controller.cc
@@ -50,6 +50,10 @@ void FirstRunController::Stop() {
g_instance = NULL;
}
+FirstRunController* FirstRunController::GetInstanceForTest() {
+ return g_instance;
+}
+
FirstRunController::FirstRunController()
: actor_(NULL),
current_step_index_(NONE_STEP_INDEX),
@@ -70,6 +74,7 @@ void FirstRunController::Init() {
actor_->set_delegate(this);
shell_helper_->GetOverlayWidget()->Show();
view->RequestFocus();
+ web_contents_for_tests_ = view->GetWebContents();
if (actor_->IsInitialized())
OnActorInitialized();
@@ -112,6 +117,10 @@ void FirstRunController::OnStepHidden(const std::string& step_name) {
ShowNextStep();
}
+void FirstRunController::OnStepShown(const std::string& step_name) {
+ DCHECK(GetCurrentStep() && GetCurrentStep()->name() == step_name);
+}
+
void FirstRunController::OnActorFinalized() {
if (!on_actor_finalized_.is_null())
on_actor_finalized_.Run();
diff --git a/chrome/browser/chromeos/first_run/first_run_controller.h b/chrome/browser/chromeos/first_run/first_run_controller.h
index f9c00ec..85f3eb6 100644
--- a/chrome/browser/chromeos/first_run/first_run_controller.h
+++ b/chrome/browser/chromeos/first_run/first_run_controller.h
@@ -18,8 +18,14 @@
class Profile;
+namespace content {
+class WebContents;
+}
+
namespace chromeos {
+class FirstRunUIBrowserTest;
+
namespace first_run {
class Step;
}
@@ -41,14 +47,19 @@ class FirstRunController : public FirstRunActor::Delegate,
static void Stop();
private:
+ friend class FirstRunUIBrowserTest;
+
FirstRunController();
void Init();
void Finalize();
+ static FirstRunController* GetInstanceForTest();
+
// Overriden from FirstRunActor::Delegate.
virtual void OnActorInitialized() OVERRIDE;
virtual void OnNextButtonClicked(const std::string& step_name) OVERRIDE;
virtual void OnHelpButtonClicked() OVERRIDE;
+ virtual void OnStepShown(const std::string& step_name) OVERRIDE;
virtual void OnStepHidden(const std::string& step_name) OVERRIDE;
virtual void OnActorFinalized() OVERRIDE;
virtual void OnActorDestroyed() OVERRIDE;
@@ -80,6 +91,9 @@ class FirstRunController : public FirstRunActor::Delegate,
// The work that should be made after actor has been finalized.
base::Closure on_actor_finalized_;
+ // Web contents of WebUI.
+ content::WebContents* web_contents_for_tests_;
+
DISALLOW_COPY_AND_ASSIGN(FirstRunController);
};
diff --git a/chrome/browser/chromeos/first_run/first_run_view.cc b/chrome/browser/chromeos/first_run/first_run_view.cc
index d08a925d1..211898f 100644
--- a/chrome/browser/chromeos/first_run/first_run_view.cc
+++ b/chrome/browser/chromeos/first_run/first_run_view.cc
@@ -50,6 +50,10 @@ void FirstRunView::RequestFocus() {
web_view_->RequestFocus();
}
+content::WebContents* FirstRunView::GetWebContents() {
+ return web_view_->web_contents();
+}
+
bool FirstRunView::HandleContextMenu(
const content::ContextMenuParams& params) {
// Discards context menu.
diff --git a/chrome/browser/chromeos/first_run/first_run_view.h b/chrome/browser/chromeos/first_run/first_run_view.h
index 6d07e6b..86fdefa 100644
--- a/chrome/browser/chromeos/first_run/first_run_view.h
+++ b/chrome/browser/chromeos/first_run/first_run_view.h
@@ -36,6 +36,8 @@ class FirstRunView : public views::View,
virtual void Layout() OVERRIDE;
virtual void RequestFocus() OVERRIDE;
+ content::WebContents* GetWebContents();
+
private:
// Overriden from content::WebContentsDelegate.
virtual bool HandleContextMenu(
diff --git a/chrome/browser/chromeos/login/login_manager_test.cc b/chrome/browser/chromeos/login/login_manager_test.cc
index 511839b..4d8738d 100644
--- a/chrome/browser/chromeos/login/login_manager_test.cc
+++ b/chrome/browser/chromeos/login/login_manager_test.cc
@@ -105,13 +105,7 @@ void LoginManagerTest::AddUser(const std::string& username) {
}
void LoginManagerTest::JSExpect(const std::string& expression) {
- bool result;
- EXPECT_TRUE(web_contents_ != NULL);
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- web_contents(),
- "window.domAutomationController.send(!!(" + expression + "));",
- &result));
- ASSERT_TRUE(result) << expression;
+ js_checker_.ExpectTrue(expression);
}
void LoginManagerTest::InitializeWebContents() {
@@ -122,6 +116,7 @@ void LoginManagerTest::InitializeWebContents() {
host->GetWebUILoginView()->GetWebContents();
EXPECT_TRUE(web_contents != NULL);
set_web_contents(web_contents);
+ js_checker_.set_web_contents(web_contents);
}
} // namespace chromeos
diff --git a/chrome/browser/chromeos/login/login_manager_test.h b/chrome/browser/chromeos/login/login_manager_test.h
index 573ffcb..8504acb 100644
--- a/chrome/browser/chromeos/login/login_manager_test.h
+++ b/chrome/browser/chromeos/login/login_manager_test.h
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_TEST_H_
#include "chrome/browser/chromeos/login/mock_login_utils.h"
+#include "chrome/browser/chromeos/login/test/js_checker.h"
#include "chrome/test/base/in_process_browser_test.h"
namespace content {
@@ -73,6 +74,7 @@ class LoginManagerTest : public InProcessBrowserTest {
MockLoginUtils* mock_login_utils_;
bool should_launch_browser_;
content::WebContents* web_contents_;
+ test::JSChecker js_checker_;
DISALLOW_COPY_AND_ASSIGN(LoginManagerTest);
};
diff --git a/chrome/browser/chromeos/login/test/oobe_screen_waiter.h b/chrome/browser/chromeos/login/test/oobe_screen_waiter.h
index 8df9b8b..d515be1 100644
--- a/chrome/browser/chromeos/login/test/oobe_screen_waiter.h
+++ b/chrome/browser/chromeos/login/test/oobe_screen_waiter.h
@@ -44,7 +44,6 @@ class OobeScreenWaiter : public OobeUI::Observer {
DISALLOW_COPY_AND_ASSIGN(OobeScreenWaiter);
};
-
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_LOGIN_TEST_OOBE_SCREEN_WAITER_H_
diff --git a/chrome/browser/resources/chromeos/first_run/first_run.js b/chrome/browser/resources/chromeos/first_run/first_run.js
index 2e061f3..10ba74b 100644
--- a/chrome/browser/resources/chromeos/first_run/first_run.js
+++ b/chrome/browser/resources/chromeos/first_run/first_run.js
@@ -235,8 +235,9 @@ cr.define('cr.FirstRun', function() {
step.setPointsTo(pointWithOffset.slice(0, 2), pointWithOffset[2]);
step.show(true, function(step) {
step.focusDefaultControl();
- });
- this.currentStep_ = step;
+ this.currentStep_ = step;
+ chrome.send('stepShown', [name]);
+ }.bind(this));
},
/**
diff --git a/chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h b/chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h
index 5de3464..e797570 100644
--- a/chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h
+++ b/chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h
@@ -30,7 +30,10 @@ class FirstRunActor {
// Called when user clicked "Keep exploring" button.
virtual void OnHelpButtonClicked() = 0;
- // Called after setp with |step_name| has been hidden.
+ // Called after step with |step_name| has been shown.
+ virtual void OnStepShown(const std::string& step_name) = 0;
+
+ // Called after step with |step_name| has been shown.
virtual void OnStepHidden(const std::string& step_name) = 0;
// Called in answer to Finalize() call.
diff --git a/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.cc b/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.cc
index b935980..6dec368 100644
--- a/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.cc
@@ -87,6 +87,9 @@ void FirstRunHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback("helpButtonClicked",
base::Bind(&FirstRunHandler::HandleHelpButtonClicked,
base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("stepShown",
+ base::Bind(&FirstRunHandler::HandleStepShown,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback("stepHidden",
base::Bind(&FirstRunHandler::HandleStepHidden,
base::Unretained(this)));
@@ -113,6 +116,13 @@ void FirstRunHandler::HandleHelpButtonClicked(const base::ListValue* args) {
delegate()->OnHelpButtonClicked();
}
+void FirstRunHandler::HandleStepShown(const base::ListValue* args) {
+ std::string step_name;
+ CHECK(args->GetString(0, &step_name));
+ if (delegate())
+ delegate()->OnStepShown(step_name);
+}
+
void FirstRunHandler::HandleStepHidden(const base::ListValue* args) {
std::string step_name;
CHECK(args->GetString(0, &step_name));
diff --git a/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.h b/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.h
index 39588b4..6bdcd85 100644
--- a/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.h
+++ b/chrome/browser/ui/webui/chromeos/first_run/first_run_handler.h
@@ -43,6 +43,7 @@ class FirstRunHandler : public FirstRunActor,
void HandleInitialized(const base::ListValue* args);
void HandleNextButtonClicked(const base::ListValue* args);
void HandleHelpButtonClicked(const base::ListValue* args);
+ void HandleStepShown(const base::ListValue* args);
void HandleStepHidden(const base::ListValue* args);
void HandleFinalized(const base::ListValue* args);
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 5351f5d..f819c1d 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -1004,6 +1004,7 @@
'browser/chromeos/file_manager/file_manager_jstest.cc',
'browser/chromeos/file_manager/zip_file_creator_browsertest.cc',
'browser/chromeos/first_run/drive_first_run_browsertest.cc',
+ 'browser/chromeos/first_run/first_run_browsertest.cc',
'browser/chromeos/input_method/input_method_engine_browsertests.cc',
'browser/chromeos/input_method/mode_indicator_browsertest.cc',
'browser/chromeos/kiosk_mode/mock_kiosk_mode_settings.cc',
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index 24f6034..6543ba7 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -103,6 +103,8 @@
'browser/chromeos/login/mock_user_manager.h',
'browser/chromeos/login/test/oobe_screen_waiter.cc',
'browser/chromeos/login/test/oobe_screen_waiter.h',
+ 'browser/chromeos/login/test/js_checker.cc',
+ 'browser/chromeos/login/test/js_checker.h',
'browser/chromeos/policy/cloud_external_data_manager_base_test_util.cc',
'browser/chromeos/policy/cloud_external_data_manager_base_test_util.h',
'browser/chromeos/policy/device_policy_builder.cc',