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

Side by Side Diff: chrome/test/chromedriver/dom_tracker_unittest.cc

Issue 12093057: [ChromeDriver] Send DOM.getDocument after each DOM.documentUpdated. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix compile error on win_rel Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/test/chromedriver/dom_tracker.cc ('k') | chrome/test/chromedriver/frame_tracker.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <list>
5 #include <string> 6 #include <string>
6 7
7 #include "base/json/json_reader.h" 8 #include "base/json/json_reader.h"
8 #include "base/values.h" 9 #include "base/values.h"
9 #include "chrome/test/chromedriver/dom_tracker.h" 10 #include "chrome/test/chromedriver/dom_tracker.h"
10 #include "chrome/test/chromedriver/status.h" 11 #include "chrome/test/chromedriver/status.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 13
14 namespace {
15
16 class FakeDevToolsClient : public DevToolsClient {
17 public:
18 FakeDevToolsClient() {}
19 virtual ~FakeDevToolsClient() {}
20
21 std::string PopSentCommand() {
22 std::string command;
23 if (!sent_command_queue_.empty()) {
24 command = sent_command_queue_.front();
25 sent_command_queue_.pop_front();
26 }
27 return command;
28 }
29
30 // Overridden from DevToolsClient:
31 virtual Status SendCommand(const std::string& method,
32 const base::DictionaryValue& params) OVERRIDE {
33 sent_command_queue_.push_back(method);
34 return Status(kOk);
35 }
36 virtual Status SendCommandAndGetResult(
37 const std::string& method,
38 const base::DictionaryValue& params,
39 scoped_ptr<base::DictionaryValue>* result) OVERRIDE {
40 return SendCommand(method, params);
41 }
42 virtual void AddListener(DevToolsEventListener* listener) OVERRIDE {}
43 virtual Status HandleEventsUntil(
44 const ConditionalFunc& conditional_func) OVERRIDE {
45 return Status(kOk);
46 }
47
48 private:
49 std::list<std::string> sent_command_queue_;
50 };
51
52 } // namespace
53
13 TEST(DomTracker, GetFrameIdForNode) { 54 TEST(DomTracker, GetFrameIdForNode) {
14 DomTracker tracker; 55 FakeDevToolsClient client;
56 DomTracker tracker(&client);
15 std::string frame_id; 57 std::string frame_id;
16 ASSERT_TRUE(tracker.GetFrameIdForNode(101, &frame_id).IsError()); 58 ASSERT_TRUE(tracker.GetFrameIdForNode(101, &frame_id).IsError());
17 ASSERT_TRUE(frame_id.empty()); 59 ASSERT_TRUE(frame_id.empty());
18 60
19 const char nodes[] = 61 const char nodes[] =
20 "[{\"nodeId\":100,\"children\":" 62 "[{\"nodeId\":100,\"children\":"
21 " [{\"nodeId\":101}," 63 " [{\"nodeId\":101},"
22 " {\"nodeId\":102,\"frameId\":\"f\"}]" 64 " {\"nodeId\":102,\"frameId\":\"f\"}]"
23 "}]"; 65 "}]";
24 base::DictionaryValue params; 66 base::DictionaryValue params;
25 params.Set("nodes", base::JSONReader::Read(nodes)); 67 params.Set("nodes", base::JSONReader::Read(nodes));
26 tracker.OnEvent("DOM.setChildNodes", params); 68 tracker.OnEvent("DOM.setChildNodes", params);
27 ASSERT_TRUE(tracker.GetFrameIdForNode(101, &frame_id).IsError()); 69 ASSERT_TRUE(tracker.GetFrameIdForNode(101, &frame_id).IsError());
28 ASSERT_TRUE(frame_id.empty()); 70 ASSERT_TRUE(frame_id.empty());
29 ASSERT_TRUE(tracker.GetFrameIdForNode(102, &frame_id).IsOk()); 71 ASSERT_TRUE(tracker.GetFrameIdForNode(102, &frame_id).IsOk());
30 ASSERT_STREQ("f", frame_id.c_str()); 72 ASSERT_STREQ("f", frame_id.c_str());
31 73
32 tracker.OnEvent("DOM.documentUpdated", params); 74 tracker.OnEvent("DOM.documentUpdated", params);
33 ASSERT_TRUE(tracker.GetFrameIdForNode(102, &frame_id).IsError()); 75 ASSERT_TRUE(tracker.GetFrameIdForNode(102, &frame_id).IsError());
76 ASSERT_STREQ("DOM.getDocument", client.PopSentCommand().c_str());
34 } 77 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/dom_tracker.cc ('k') | chrome/test/chromedriver/frame_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698