| 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 |