Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Side by Side Diff: blimp/client/core/contents/blimp_contents_observer_unittest.cc

Issue 2241623002: blimp: Move compositing, input and render widget feature to client/core. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed comments from #7 Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "blimp/client/public/contents/blimp_contents_observer.h" 5 #include "blimp/client/public/contents/blimp_contents_observer.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "blimp/client/core/compositor/compositor_deps_provider.h"
8 #include "blimp/client/core/contents/blimp_contents_impl.h" 9 #include "blimp/client/core/contents/blimp_contents_impl.h"
9 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
11 12
12 namespace { 13 namespace {
13 const int kDummyTabId = 0; 14 const int kDummyTabId = 0;
14 } 15 }
15 16
16 namespace blimp { 17 namespace blimp {
17 namespace client { 18 namespace client {
18 19
19 namespace { 20 namespace {
20 21
21 class BlimpContentsObserverTest : public BlimpContentsObserver { 22 class BlimpContentsObserverTest : public BlimpContentsObserver {
22 public: 23 public:
23 explicit BlimpContentsObserverTest(BlimpContents* blimp_contents) 24 explicit BlimpContentsObserverTest(BlimpContents* blimp_contents)
24 : BlimpContentsObserver(blimp_contents) {} 25 : BlimpContentsObserver(blimp_contents) {}
25 26
26 MOCK_METHOD0(OnContentsDestroyed, void()); 27 MOCK_METHOD0(OnContentsDestroyed, void());
27 28
28 private: 29 private:
29 DISALLOW_COPY_AND_ASSIGN(BlimpContentsObserverTest); 30 DISALLOW_COPY_AND_ASSIGN(BlimpContentsObserverTest);
30 }; 31 };
31 32
32 TEST(BlimpContentsObserverUnittests, ObserverDies) { 33 TEST(BlimpContentsObserverUnittests, ObserverDies) {
33 BlimpContentsImpl contents(kDummyTabId); 34 RenderWidgetFeature feature;
35 CompositorDepsProvider::Initialize(true);
36 std::unique_ptr<BlimpContentsImpl> contents =
37 base::MakeUnique<BlimpContentsImpl>(kDummyTabId, &feature);
34 38
35 std::unique_ptr<BlimpContentsObserver> observer = 39 std::unique_ptr<BlimpContentsObserver> observer =
36 base::MakeUnique<BlimpContentsObserverTest>(&contents); 40 base::MakeUnique<BlimpContentsObserverTest>(contents.get());
37 BlimpContentsObserver* observer_ptr = observer.get(); 41 BlimpContentsObserver* observer_ptr = observer.get();
38 EXPECT_TRUE(contents.HasObserver(observer_ptr)); 42 EXPECT_TRUE(contents->HasObserver(observer_ptr));
39 observer.reset(); 43 observer.reset();
40 44
41 EXPECT_FALSE(contents.HasObserver(observer_ptr)); 45 EXPECT_FALSE(contents->HasObserver(observer_ptr));
46
47 // BlimpContents must be destroyed before the CompositorDepsProvider is
48 // terminated.
49 contents.reset();
50 CompositorDepsProvider::Terminate();
42 } 51 }
43 52
44 TEST(BlimpContentsObserverUnittests, ContentsDies) { 53 TEST(BlimpContentsObserverUnittests, ContentsDies) {
45 std::unique_ptr<BlimpContentsObserverTest> observer; 54 std::unique_ptr<BlimpContentsObserverTest> observer;
46 55
56 RenderWidgetFeature feature;
57 CompositorDepsProvider::Initialize(true);
47 std::unique_ptr<BlimpContentsImpl> contents = 58 std::unique_ptr<BlimpContentsImpl> contents =
48 base::MakeUnique<BlimpContentsImpl>(kDummyTabId); 59 base::MakeUnique<BlimpContentsImpl>(kDummyTabId, &feature);
49 observer.reset(new BlimpContentsObserverTest(contents.get())); 60 observer.reset(new BlimpContentsObserverTest(contents.get()));
50 EXPECT_CALL(*observer, OnContentsDestroyed()).Times(1); 61 EXPECT_CALL(*observer, OnContentsDestroyed()).Times(1);
51 EXPECT_EQ(observer->blimp_contents(), contents.get()); 62 EXPECT_EQ(observer->blimp_contents(), contents.get());
52 contents.reset(); 63 contents.reset();
53 64
54 EXPECT_EQ(observer->blimp_contents(), nullptr); 65 EXPECT_EQ(observer->blimp_contents(), nullptr);
66 CompositorDepsProvider::Terminate();
55 } 67 }
56 68
57 } // namespace 69 } // namespace
58 70
59 } // namespace client 71 } // namespace client
60 } // namespace blimp 72 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698