| OLD | NEW |
| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 #include <tuple> | 7 #include <tuple> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 515 RenderViewImpl* new_view = RenderViewImpl::FromWebView(new_web_view); | 515 RenderViewImpl* new_view = RenderViewImpl::FromWebView(new_web_view); |
| 516 | 516 |
| 517 // Close the view, causing the main RenderFrame to be detached and deleted. | 517 // Close the view, causing the main RenderFrame to be detached and deleted. |
| 518 new_view->Close(); | 518 new_view->Close(); |
| 519 EXPECT_FALSE(new_view->GetMainRenderFrame()); | 519 EXPECT_FALSE(new_view->GetMainRenderFrame()); |
| 520 | 520 |
| 521 // Clean up after the new view so we don't leak it. | 521 // Clean up after the new view so we don't leak it. |
| 522 new_view->Release(); | 522 new_view->Release(); |
| 523 } | 523 } |
| 524 | 524 |
| 525 TEST_F(RenderViewImplTest, SaveImageFromDataURL) { | |
| 526 const IPC::Message* msg1 = render_thread_->sink().GetFirstMessageMatching( | |
| 527 ViewHostMsg_SaveImageFromDataURL::ID); | |
| 528 EXPECT_FALSE(msg1); | |
| 529 render_thread_->sink().ClearMessages(); | |
| 530 | |
| 531 const std::string image_data_url = | |
| 532 "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="; | |
| 533 | |
| 534 view()->saveImageFromDataURL(WebString::fromUTF8(image_data_url)); | |
| 535 ProcessPendingMessages(); | |
| 536 const IPC::Message* msg2 = render_thread_->sink().GetFirstMessageMatching( | |
| 537 ViewHostMsg_SaveImageFromDataURL::ID); | |
| 538 EXPECT_TRUE(msg2); | |
| 539 | |
| 540 ViewHostMsg_SaveImageFromDataURL::Param param1; | |
| 541 ViewHostMsg_SaveImageFromDataURL::Read(msg2, ¶m1); | |
| 542 EXPECT_EQ(std::get<2>(param1).length(), image_data_url.length()); | |
| 543 EXPECT_EQ(std::get<2>(param1), image_data_url); | |
| 544 | |
| 545 ProcessPendingMessages(); | |
| 546 render_thread_->sink().ClearMessages(); | |
| 547 | |
| 548 const std::string large_data_url(1024 * 1024 * 20 - 1, 'd'); | |
| 549 | |
| 550 view()->saveImageFromDataURL(WebString::fromUTF8(large_data_url)); | |
| 551 ProcessPendingMessages(); | |
| 552 const IPC::Message* msg3 = render_thread_->sink().GetFirstMessageMatching( | |
| 553 ViewHostMsg_SaveImageFromDataURL::ID); | |
| 554 EXPECT_TRUE(msg3); | |
| 555 | |
| 556 ViewHostMsg_SaveImageFromDataURL::Param param2; | |
| 557 ViewHostMsg_SaveImageFromDataURL::Read(msg3, ¶m2); | |
| 558 EXPECT_EQ(std::get<2>(param2).length(), large_data_url.length()); | |
| 559 EXPECT_EQ(std::get<2>(param2), large_data_url); | |
| 560 | |
| 561 ProcessPendingMessages(); | |
| 562 render_thread_->sink().ClearMessages(); | |
| 563 | |
| 564 const std::string exceeded_data_url(1024 * 1024 * 20 + 1, 'd'); | |
| 565 | |
| 566 view()->saveImageFromDataURL(WebString::fromUTF8(exceeded_data_url)); | |
| 567 ProcessPendingMessages(); | |
| 568 const IPC::Message* msg4 = render_thread_->sink().GetFirstMessageMatching( | |
| 569 ViewHostMsg_SaveImageFromDataURL::ID); | |
| 570 EXPECT_FALSE(msg4); | |
| 571 } | |
| 572 | |
| 573 // Test that we get form state change notifications when input fields change. | 525 // Test that we get form state change notifications when input fields change. |
| 574 TEST_F(RenderViewImplTest, OnNavStateChanged) { | 526 TEST_F(RenderViewImplTest, OnNavStateChanged) { |
| 575 view()->set_send_content_state_immediately(true); | 527 view()->set_send_content_state_immediately(true); |
| 576 LoadHTML("<input type=\"text\" id=\"elt_text\"></input>"); | 528 LoadHTML("<input type=\"text\" id=\"elt_text\"></input>"); |
| 577 | 529 |
| 578 // We should NOT have gotten a form state change notification yet. | 530 // We should NOT have gotten a form state change notification yet. |
| 579 EXPECT_FALSE(render_thread_->sink().GetFirstMessageMatching( | 531 EXPECT_FALSE(render_thread_->sink().GetFirstMessageMatching( |
| 580 FrameHostMsg_UpdateState::ID)); | 532 FrameHostMsg_UpdateState::ID)); |
| 581 EXPECT_FALSE(render_thread_->sink().GetFirstMessageMatching( | 533 EXPECT_FALSE(render_thread_->sink().GetFirstMessageMatching( |
| 582 ViewHostMsg_UpdateState::ID)); | 534 ViewHostMsg_UpdateState::ID)); |
| (...skipping 1919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2502 "," | 2454 "," |
| 2503 "\"functionDeclaration\":\"function foo(){ " | 2455 "\"functionDeclaration\":\"function foo(){ " |
| 2504 "Promise.resolve().then(() => " | 2456 "Promise.resolve().then(() => " |
| 2505 "console.log(239))}\"" | 2457 "console.log(239))}\"" |
| 2506 "}" | 2458 "}" |
| 2507 "}"); | 2459 "}"); |
| 2508 EXPECT_EQ(1, CountNotifications("Console.messageAdded")); | 2460 EXPECT_EQ(1, CountNotifications("Console.messageAdded")); |
| 2509 } | 2461 } |
| 2510 | 2462 |
| 2511 } // namespace content | 2463 } // namespace content |
| OLD | NEW |