1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <memory>
#include "base/macros.h"
#include "base/run_loop.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "services/navigation/public/interfaces/view.mojom.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/cpp/service_test.h"
namespace navigation {
class NavigationTest : public service_manager::test::ServiceTest,
public mojom::ViewClient {
public:
NavigationTest()
: service_manager::test::ServiceTest("navigation_unittests"),
binding_(this) {}
~NavigationTest() override {}
protected:
void SetUp() override {
service_manager::test::ServiceTest::SetUp();
window_manager_connection_ = connector()->Connect("test_wm");
}
mojom::ViewClientPtr GetViewClient() {
return binding_.CreateInterfacePtrAndBind();
}
void QuitOnLoadingStateChange(base::RunLoop* loop) {
loop_ = loop;
}
private:
// mojom::ViewClient:
void OpenURL(mojom::OpenURLParamsPtr params) override {}
void LoadingStateChanged(bool is_loading) override {
// Should see loading start, then stop.
if (++load_count_ == 2 && loop_)
loop_->Quit();
}
void NavigationStateChanged(const GURL& url,
const std::string& title,
bool can_go_back,
bool can_go_forward) override {}
void LoadProgressChanged(double progress) override {}
void UpdateHoverURL(const GURL& url) override {}
void ViewCreated(mojom::ViewPtr,
mojom::ViewClientRequest,
bool,
const gfx::Rect&,
bool) override {}
void Close() override {}
void NavigationPending(mojom::NavigationEntryPtr entry) override {}
void NavigationCommitted(
mojom::NavigationCommittedDetailsPtr details,
int current_index) override {}
void NavigationEntryChanged(mojom::NavigationEntryPtr entry,
int entry_index) override {}
void NavigationListPruned(bool from_front, int count) override {}
int load_count_ = 0;
mojo::Binding<mojom::ViewClient> binding_;
base::RunLoop* loop_ = nullptr;
std::unique_ptr<service_manager::Connection> window_manager_connection_;
DISALLOW_COPY_AND_ASSIGN(NavigationTest);
};
// See crbug.com/619523
TEST_F(NavigationTest, DISABLED_Navigate) {
mojom::ViewFactoryPtr view_factory;
connector()->BindInterface("navigation", &view_factory);
mojom::ViewPtr view;
view_factory->CreateView(GetViewClient(), MakeRequest(&view));
view->NavigateTo(GURL("about:blank"));
base::RunLoop loop;
QuitOnLoadingStateChange(&loop);
loop.Run();
}
} // namespace navigation
|