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

Side by Side Diff: headless/lib/headless_web_contents_browsertest.cc

Issue 2907523003: Fix TabSocket.onmessage whoch should be able to retrieve all messages (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « no previous file | headless/lib/renderer/headless_content_renderer_client.cc » ('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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <memory> 5 #include <memory>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 16 matching lines...) Expand all
27 #include "url/gurl.h" 27 #include "url/gurl.h"
28 28
29 #if BUILDFLAG(ENABLE_BASIC_PRINTING) 29 #if BUILDFLAG(ENABLE_BASIC_PRINTING)
30 #include "base/strings/string_number_conversions.h" 30 #include "base/strings/string_number_conversions.h"
31 #include "pdf/pdf.h" 31 #include "pdf/pdf.h"
32 #include "printing/pdf_render_settings.h" 32 #include "printing/pdf_render_settings.h"
33 #include "printing/units.h" 33 #include "printing/units.h"
34 #include "ui/gfx/geometry/rect.h" 34 #include "ui/gfx/geometry/rect.h"
35 #endif 35 #endif
36 36
37 using testing::ElementsAre;
37 using testing::UnorderedElementsAre; 38 using testing::UnorderedElementsAre;
38 39
39 namespace headless { 40 namespace headless {
40 41
41 class HeadlessWebContentsTest : public HeadlessBrowserTest {}; 42 class HeadlessWebContentsTest : public HeadlessBrowserTest {};
42 43
43 IN_PROC_BROWSER_TEST_F(HeadlessWebContentsTest, Navigation) { 44 IN_PROC_BROWSER_TEST_F(HeadlessWebContentsTest, Navigation) {
44 EXPECT_TRUE(embedded_test_server()->Start()); 45 EXPECT_TRUE(embedded_test_server()->Start());
45 46
46 HeadlessBrowserContext* browser_context = 47 HeadlessBrowserContext* browser_context =
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 R"(window.TabSocket.onmessage = 329 R"(window.TabSocket.onmessage =
329 function(message) { 330 function(message) {
330 window.TabSocket.send('Embedder sent us: ' + message); 331 window.TabSocket.send('Embedder sent us: ' + message);
331 }; 332 };
332 )"); 333 )");
333 334
334 HeadlessTabSocket* headless_tab_socket = 335 HeadlessTabSocket* headless_tab_socket =
335 web_contents_->GetHeadlessTabSocket(); 336 web_contents_->GetHeadlessTabSocket();
336 DCHECK(headless_tab_socket); 337 DCHECK(headless_tab_socket);
337 338
338 headless_tab_socket->SendMessageToTab("Hello"); 339 headless_tab_socket->SendMessageToTab("One");
340 headless_tab_socket->SendMessageToTab("Two");
341 headless_tab_socket->SendMessageToTab("Three");
339 headless_tab_socket->SetListener(this); 342 headless_tab_socket->SetListener(this);
340 } 343 }
341 344
342 void OnMessageFromTab(const std::string& message) override { 345 void OnMessageFromTab(const std::string& message) override {
343 EXPECT_EQ("Embedder sent us: Hello", message); 346 messages_.push_back(message);
344 FinishAsynchronousTest(); 347 if (messages_.size() == 3u) {
348 EXPECT_THAT(messages_,
349 ElementsAre("Embedder sent us: One", "Embedder sent us: Two",
350 "Embedder sent us: Three"));
351 FinishAsynchronousTest();
352 }
345 } 353 }
346 354
347 HeadlessWebContents::Builder::TabSocketType GetTabSocketType() override { 355 HeadlessWebContents::Builder::TabSocketType GetTabSocketType() override {
348 return HeadlessWebContents::Builder::TabSocketType::MAIN_WORLD; 356 return HeadlessWebContents::Builder::TabSocketType::MAIN_WORLD;
349 } 357 }
358
359 private:
360 std::vector<std::string> messages_;
350 }; 361 };
351 362
352 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessMainWorldTabSocketTest); 363 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessMainWorldTabSocketTest);
353 364
354 class HeadlessMainWorldTabSocketNotThereTest 365 class HeadlessMainWorldTabSocketNotThereTest
355 : public HeadlessAsyncDevTooledBrowserTest, 366 : public HeadlessAsyncDevTooledBrowserTest,
356 public HeadlessTabSocket::Listener { 367 public HeadlessTabSocket::Listener {
357 public: 368 public:
358 void SetUp() override { 369 void SetUp() override {
359 options()->mojo_service_names.insert("headless::TabSocket"); 370 options()->mojo_service_names.insert("headless::TabSocket");
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 return HeadlessWebContents::Builder::TabSocketType::MAIN_WORLD; 558 return HeadlessWebContents::Builder::TabSocketType::MAIN_WORLD;
548 } 559 }
549 560
550 private: 561 private:
551 std::string main_frame_id_; 562 std::string main_frame_id_;
552 }; 563 };
553 564
554 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessIsolatedWorldTabSocketNotThereTest); 565 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessIsolatedWorldTabSocketNotThereTest);
555 566
556 } // namespace headless 567 } // namespace headless
OLDNEW
« no previous file with comments | « no previous file | headless/lib/renderer/headless_content_renderer_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698