OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |