summaryrefslogtreecommitdiffstats
path: root/chrome/browser/media/router/media_router_mojo_test.cc
blob: 5049375e4d1dfa967d426a4ea0fa9e5acfe76aba (plain)
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
// 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 "chrome/browser/media/router/media_router_mojo_test.h"

#include "base/run_loop.h"

namespace media_router {
namespace {

const char kInstanceId[] = "instance123";

template <typename T1, typename T2>
void ExpectAsyncResultEqual(T1 expected, T2 actual) {
  EXPECT_EQ(expected, actual);
}

}  // namespace

MockMediaRouteProvider::MockMediaRouteProvider() {
}

MockMediaRouteProvider::~MockMediaRouteProvider() {
}

MediaRouterMojoTest::MediaRouterMojoTest()
    : message_loop_(mojo::common::MessagePumpMojo::Create()),
      extension_id_("ext-123"),
      mock_media_router_(new MediaRouterMojoImpl(&mock_event_page_tracker_)) {
  mock_media_router_->set_instance_id_for_test(kInstanceId);
}

MediaRouterMojoTest::~MediaRouterMojoTest() {
}

void MediaRouterMojoTest::ConnectProviderManagerService() {
  // Bind the |media_route_provider| interface to |media_route_provider_|.
  auto request = mojo::GetProxy(&media_router_proxy_);
  mock_media_router_->BindToMojoRequest(request.Pass(), extension_id_);

  // Bind the Mojo MediaRouter interface used by |mock_media_router_| to
  // |mock_media_route_provider_service_|.
  interfaces::MediaRouteProviderPtr mojo_media_router;
  binding_.reset(new mojo::Binding<interfaces::MediaRouteProvider>(
      &mock_media_route_provider_, mojo::GetProxy(&mojo_media_router)));
  media_router_proxy_->RegisterMediaRouteProvider(
      mojo_media_router.Pass(),
      base::Bind(&ExpectAsyncResultEqual<std::string, mojo::String>,
                 kInstanceId));
}

void MediaRouterMojoTest::SetUp() {
  ON_CALL(mock_event_page_tracker_, IsEventPageSuspended(extension_id_))
      .WillByDefault(testing::Return(false));

  ConnectProviderManagerService();

  message_loop_.RunUntilIdle();
}

void MediaRouterMojoTest::ProcessEventLoop() {
  base::RunLoop().RunUntilIdle();
}

}  // namespace media_router