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

Side by Side Diff: content/browser/device_orientation/provider_unittest.cc

Issue 10068037: RefCounted types should not have public destructors, content/browser part 1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: MSVC fixes Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
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 <queue> 5 #include <queue>
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/synchronization/lock.h" 8 #include "base/synchronization/lock.h"
9 #include "content/browser/device_orientation/data_fetcher.h" 9 #include "content/browser/device_orientation/data_fetcher.h"
10 #include "content/browser/device_orientation/orientation.h" 10 #include "content/browser/device_orientation/orientation.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 }; 66 };
67 67
68 // Class for injecting test orientation data into the Provider. 68 // Class for injecting test orientation data into the Provider.
69 class MockOrientationFactory : public base::RefCounted<MockOrientationFactory> { 69 class MockOrientationFactory : public base::RefCounted<MockOrientationFactory> {
70 public: 70 public:
71 MockOrientationFactory() { 71 MockOrientationFactory() {
72 EXPECT_FALSE(instance_); 72 EXPECT_FALSE(instance_);
73 instance_ = this; 73 instance_ = this;
74 } 74 }
75 75
76 ~MockOrientationFactory() {
77 instance_ = NULL;
78 }
79
80 static DataFetcher* CreateDataFetcher() { 76 static DataFetcher* CreateDataFetcher() {
81 EXPECT_TRUE(instance_); 77 EXPECT_TRUE(instance_);
82 return new MockDataFetcher(instance_); 78 return new MockDataFetcher(instance_);
83 } 79 }
84 80
85 void SetOrientation(const Orientation& orientation) { 81 void SetOrientation(const Orientation& orientation) {
86 base::AutoLock auto_lock(lock_); 82 base::AutoLock auto_lock(lock_);
87 orientation_ = orientation; 83 orientation_ = orientation;
88 } 84 }
89 85
90 private: 86 private:
87 friend class base::RefCounted<MockOrientationFactory>;
88
89 ~MockOrientationFactory() {
90 instance_ = NULL;
91 }
92
91 // Owned by ProviderImpl. Holds a reference back to MockOrientationFactory. 93 // Owned by ProviderImpl. Holds a reference back to MockOrientationFactory.
92 class MockDataFetcher : public DataFetcher { 94 class MockDataFetcher : public DataFetcher {
93 public: 95 public:
94 explicit MockDataFetcher(MockOrientationFactory* orientation_factory) 96 explicit MockDataFetcher(MockOrientationFactory* orientation_factory)
95 : orientation_factory_(orientation_factory) { } 97 : orientation_factory_(orientation_factory) { }
96 98
97 // From DataFetcher. Called by the Provider. 99 // From DataFetcher. Called by the Provider.
98 virtual bool GetOrientation(Orientation* orientation) { 100 virtual bool GetOrientation(Orientation* orientation) {
99 base::AutoLock auto_lock(orientation_factory_->lock_); 101 base::AutoLock auto_lock(orientation_factory_->lock_);
100 *orientation = orientation_factory_->orientation_; 102 *orientation = orientation_factory_->orientation_;
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 checker_b->AddExpectation(third_orientation); 387 checker_b->AddExpectation(third_orientation);
386 MessageLoop::current()->Run(); 388 MessageLoop::current()->Run();
387 389
388 provider_->RemoveObserver(checker_a.get()); 390 provider_->RemoveObserver(checker_a.get());
389 provider_->RemoveObserver(checker_b.get()); 391 provider_->RemoveObserver(checker_b.get());
390 } 392 }
391 393
392 } // namespace 394 } // namespace
393 395
394 } // namespace device_orientation 396 } // namespace device_orientation
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698