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

Side by Side Diff: chrome/test/remoting/remote_test_helper.cc

Issue 807343002: Adding the first set of remote test cases and associated framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing comments and merge issues. Created 5 years, 11 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/test/remoting/remote_test_helper.h"
6
7 #include "base/bind.h"
8 #include "chrome/test/remoting/waiter.h"
9
10 namespace remoting {
11
12 Event::Event() : action(Action::NONE), value(0), modifiers(0) {}
13
14 RemoteTestHelper::RemoteTestHelper(content::WebContents* web_content)
15 :web_content_(web_content) {}
Jamie 2015/01/06 19:31:38 Nit: indentation.
Mike Meade 2015/01/08 18:58:42 Done.
16
17 // static
18 bool RemoteTestHelper::ExecuteScriptAndExtractBool(
19 content::WebContents* web_contents, const std::string& script) {
20 bool result;
21 EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
22 web_contents,
23 "window.domAutomationController.send(" + script + ");",
24 &result));
25
26 return result;
27 }
28
29 // static
30 int RemoteTestHelper::ExecuteScriptAndExtractInt(
31 content::WebContents* web_contents, const std::string& script) {
32 int result;
33 _ASSERT_TRUE(content::ExecuteScriptAndExtractInt(
34 web_contents,
35 "window.domAutomationController.send(" + script + ");",
36 &result));
37
38 return result;
39 }
40
41 // static
42 std::string RemoteTestHelper::ExecuteScriptAndExtractString(
43 content::WebContents* web_contents, const std::string& script) {
44 std::string result;
45 _ASSERT_TRUE(content::ExecuteScriptAndExtractString(
46 web_contents,
47 "window.domAutomationController.send(" + script + ");",
48 &result));
49
50 return result;
51 }
52
53 void RemoteTestHelper::ExecuteRpc(const std::string& method,
54 base::TimeDelta timeout,
55 base::TimeDelta interval) {
56 ASSERT_TRUE(
57 content::ExecuteScript(
Jamie 2015/01/06 19:31:39 This indentation is inconsistent with the _ASSERT_
Mike Meade 2015/01/08 18:58:42 Done.
58 web_content_,
59 "jsonRpc.responseObject = null"));
60 ASSERT_TRUE(
61 content::ExecuteScript(web_content_, method));
62 // Wait until the client tab sets the right variables
Jamie 2015/01/06 19:31:38 This comment is a bit vague. If I'm reading the co
Mike Meade 2015/01/08 18:58:42 Done.
63 ConditionalTimeoutWaiter waiter(
64 timeout,
Jamie 2015/01/06 19:31:38 Nit: Indentation.
Mike Meade 2015/01/08 18:58:42 Done.
65 interval,
66 base::Bind(
67 &RemoteTestHelper::ExecuteScriptAndExtractBool,
68 web_content_,
69 "jsonRpc.responseObject != null"));
70 EXPECT_TRUE(waiter.Wait());
71 }
72
73 void RemoteTestHelper::ClearLastEvent() {
74 ExecuteRpc("jsonRpc.clearLastEvent();");
75 }
76
77 bool RemoteTestHelper::IsValidEvent() {
78 // Reset the response
79 EXPECT_TRUE(content::ExecuteScript(
80 web_content_, "jsonRpc.responseObject = null"));
Jamie 2015/01/06 19:31:39 ExecuteRpc already does this, so you don't need th
Mike Meade 2015/01/08 18:58:42 Done.
81 // Call GetLastEvent on the server
82 ExecuteRpc("jsonRpc.getLastEvent()",
83 base::TimeDelta::FromMilliseconds(250),
84 base::TimeDelta::FromMilliseconds(50));
85 return ExecuteScriptAndExtractBool(web_content_,
86 "jsonRpc.responseObject.action != 0");
87 }
88
89 void RemoteTestHelper::GetLastEvent(Event* event) {
90 // Wait for a valid event
91 ConditionalTimeoutWaiter waiter(
92 base::TimeDelta::FromSeconds(2),
Jamie 2015/01/06 19:31:39 Indentation.
Mike Meade 2015/01/08 18:58:42 Done.
93 base::TimeDelta::FromMilliseconds(500),
94 base::Bind(&RemoteTestHelper::IsValidEvent,
95 base::Unretained(this)));
96 EXPECT_TRUE(waiter.Wait());
97
98 // Extract the event's values
99 event->action = static_cast<Action>(
100 ExecuteScriptAndExtractInt(
101 web_content_,
102 "jsonRpc.responseObject.action"));
103 event->value = ExecuteScriptAndExtractInt(
104 web_content_,
105 "jsonRpc.responseObject.value");
106 event->modifiers = ExecuteScriptAndExtractInt(
107 web_content_,
108 "jsonRpc.responseObject.modifiers");
109 }
110
111 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698