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 "base/memory/ptr_util.h" | 5 #include "base/memory/ptr_util.h" |
6 #include "blimp/client/core/contents/ime_feature.h" | 6 #include "blimp/client/core/contents/ime_feature.h" |
7 #include "blimp/client/core/contents/mock_ime_feature_delegate.h" | 7 #include "blimp/client/core/contents/mock_ime_feature_delegate.h" |
8 #include "blimp/client/core/contents/mock_navigation_feature_delegate.h" | 8 #include "blimp/client/core/contents/mock_navigation_feature_delegate.h" |
9 #include "blimp/client/core/contents/navigation_feature.h" | 9 #include "blimp/client/core/contents/navigation_feature.h" |
10 #include "blimp/client/core/contents/tab_control_feature.h" | 10 #include "blimp/client/core/contents/tab_control_feature.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 // Create a headless client on UI thread. | 41 // Create a headless client on UI thread. |
42 client_session_.reset(new client::TestClientSession); | 42 client_session_.reset(new client::TestClientSession); |
43 | 43 |
44 // Set feature delegates. | 44 // Set feature delegates. |
45 client_session_->GetNavigationFeature()->SetDelegate( | 45 client_session_->GetNavigationFeature()->SetDelegate( |
46 kDummyTabId, &client_nav_feature_delegate_); | 46 kDummyTabId, &client_nav_feature_delegate_); |
47 client_session_->GetRenderWidgetFeature()->SetDelegate( | 47 client_session_->GetRenderWidgetFeature()->SetDelegate( |
48 kDummyTabId, &client_rw_feature_delegate_); | 48 kDummyTabId, &client_rw_feature_delegate_); |
49 client_session_->GetImeFeature()->set_delegate( | 49 client_session_->GetImeFeature()->set_delegate( |
50 &client_ime_feature_delegate_); | 50 &client_ime_feature_delegate_); |
| 51 |
| 52 // Skip assigner. Engine info is already available. |
| 53 client_session_->ConnectWithAssignment(client::ASSIGNMENT_REQUEST_RESULT_OK, |
| 54 GetAssignment()); |
| 55 client_session_->GetTabControlFeature()->SetSizeAndScale(gfx::Size(100, 100)
, |
| 56 1); |
| 57 client_session_->GetTabControlFeature()->CreateTab(kDummyTabId); |
| 58 |
| 59 EXPECT_TRUE(embedded_test_server()->Start()); |
| 60 } |
| 61 |
| 62 void NavigateToLocalUrl(std::string path) { |
| 63 GURL url = embedded_test_server()->GetURL(path); |
| 64 client_session_->GetNavigationFeature()->NavigateToUrlText(kDummyTabId, |
| 65 url.spec()); |
| 66 } |
| 67 |
| 68 void ExpectPageLoad(std::string title) { |
| 69 testing::InSequence s; |
| 70 |
| 71 // When navigating, the title changes to the requested URL before becoming |
| 72 // the actual title. |
| 73 EXPECT_CALL(client_nav_feature_delegate_, |
| 74 OnTitleChanged(kDummyTabId, testing::_)); |
| 75 EXPECT_CALL(client_nav_feature_delegate_, |
| 76 OnTitleChanged(kDummyTabId, title)) |
| 77 .WillOnce(InvokeWithoutArgs(this, &EngineBrowserTest::SignalCompletion))
; |
| 78 }; |
| 79 |
| 80 void RunAndVerify() { |
| 81 RunUntilCompletion(); |
| 82 testing::Mock::VerifyAndClearExpectations(&client_rw_feature_delegate_); |
| 83 testing::Mock::VerifyAndClearExpectations(&client_nav_feature_delegate_); |
51 } | 84 } |
52 | 85 |
53 client::MockNavigationFeatureDelegate client_nav_feature_delegate_; | 86 client::MockNavigationFeatureDelegate client_nav_feature_delegate_; |
54 client::MockRenderWidgetFeatureDelegate client_rw_feature_delegate_; | 87 client::MockRenderWidgetFeatureDelegate client_rw_feature_delegate_; |
55 client::MockImeFeatureDelegate client_ime_feature_delegate_; | 88 client::MockImeFeatureDelegate client_ime_feature_delegate_; |
56 std::unique_ptr<client::TestClientSession> client_session_; | 89 std::unique_ptr<client::TestClientSession> client_session_; |
57 | 90 |
58 private: | 91 private: |
59 DISALLOW_COPY_AND_ASSIGN(EngineBrowserTest); | 92 DISALLOW_COPY_AND_ASSIGN(EngineBrowserTest); |
60 }; | 93 }; |
61 | 94 |
| 95 /* |
62 IN_PROC_BROWSER_TEST_F(EngineBrowserTest, LoadUrl) { | 96 IN_PROC_BROWSER_TEST_F(EngineBrowserTest, LoadUrl) { |
63 testing::InSequence s; | 97 EXPECT_CALL(client_rw_feature_delegate_, OnRenderWidgetCreated(1)); |
| 98 ExpectPageLoad("page1"); |
| 99 NavigateToLocalUrl("/page1.html"); |
| 100 RunAndVerify(); |
| 101 } |
| 102 */ |
64 | 103 |
65 EXPECT_TRUE(embedded_test_server()->Start()); | 104 IN_PROC_BROWSER_TEST_F(EngineBrowserTest, GoBack) { |
66 GURL url = embedded_test_server()->GetURL("/hello.html"); | 105 ExpectPageLoad("page1"); |
| 106 NavigateToLocalUrl("/page1.html"); |
| 107 RunAndVerify(); |
67 | 108 |
68 EXPECT_CALL(client_rw_feature_delegate_, OnRenderWidgetCreated(1)); | 109 ExpectPageLoad("page2"); |
69 EXPECT_CALL(client_nav_feature_delegate_, | 110 NavigateToLocalUrl("/page2.html"); |
70 OnTitleChanged(kDummyTabId, url.GetContent())); | 111 RunAndVerify(); |
71 EXPECT_CALL(client_nav_feature_delegate_, | |
72 OnTitleChanged(kDummyTabId, "hello")) | |
73 .WillOnce(InvokeWithoutArgs(this, &EngineBrowserTest::SignalCompletion)); | |
74 | 112 |
75 // Skip assigner. Engine info is already available. | 113 ExpectPageLoad("page1"); |
76 client_session_->ConnectWithAssignment(client::ASSIGNMENT_REQUEST_RESULT_OK, | 114 client_session_->GetNavigationFeature()->GoBack(kDummyTabId); |
77 GetAssignment()); | 115 RunAndVerify(); |
78 client_session_->GetTabControlFeature()->SetSizeAndScale(gfx::Size(100, 100), | |
79 1); | |
80 client_session_->GetTabControlFeature()->CreateTab(kDummyTabId); | |
81 client_session_->GetNavigationFeature()->NavigateToUrlText(kDummyTabId, | |
82 url.spec()); | |
83 | |
84 RunUntilCompletion(); | |
85 } | 116 } |
86 | 117 |
87 } // namespace | 118 } // namespace |
88 } // namespace blimp | 119 } // namespace blimp |
OLD | NEW |