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

Side by Side Diff: ios/consumer/base/supports_user_data_unittest.cc

Issue 781643004: Cleanup WebState and WebStateUserData API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove extra destructor Created 6 years 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
« no previous file with comments | « ios/consumer/base/supports_user_data.cc ('k') | ios/ios_base.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ios/public/consumer/base/supports_user_data.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "testing/platform_test.h"
11
12 namespace ios {
13
14 namespace {
15 const char* kTestData1Key = "test_data1";
16 const char* kTestData2Key = "test_data2";
17 } // namespace
18
19 class TestData : public SupportsUserData::Data {
20 public:
21 TestData(bool* was_destroyed)
22 : was_destroyed_(was_destroyed) {
23 *was_destroyed_ = false;
24 }
25 virtual ~TestData() {
26 *was_destroyed_ = true;
27 }
28
29 private:
30 bool* was_destroyed_;
31 };
32
33 class TestSupportsUserData : public SupportsUserData {
34 public:
35 TestSupportsUserData() {}
36 virtual ~TestSupportsUserData() {}
37 };
38
39 class SupportsUserDataTest : public PlatformTest {
40 public:
41 virtual void SetUp() override {
42 PlatformTest::SetUp();
43
44 test_data1_was_destroyed_ = false;
45 test_data1_ = new TestData(&test_data1_was_destroyed_);
46 test_data2_was_destroyed_ = false;
47 test_data2_ = new TestData(&test_data2_was_destroyed_);
48 supports_user_data_.reset(new TestSupportsUserData());
49 }
50
51 virtual void TearDown() override {
52 if (!test_data1_was_destroyed_ &&
53 supports_user_data_ &&
54 supports_user_data_->GetUserData(kTestData1Key) != test_data1_)
55 delete test_data1_;
56 if (!test_data2_was_destroyed_ &&
57 supports_user_data_ &&
58 supports_user_data_->GetUserData(kTestData2Key) != test_data2_)
59 delete test_data2_;
60
61 PlatformTest::TearDown();
62 }
63
64 protected:
65 scoped_ptr<TestSupportsUserData> supports_user_data_;
66 bool test_data1_was_destroyed_;
67 TestData* test_data1_;
68 bool test_data2_was_destroyed_;
69 TestData* test_data2_;
70 };
71
72 TEST_F(SupportsUserDataTest, SetAndGetData) {
73 EXPECT_FALSE(supports_user_data_->GetUserData(kTestData1Key));
74 supports_user_data_->SetUserData(kTestData1Key, test_data1_);
75 EXPECT_EQ(supports_user_data_->GetUserData(kTestData1Key), test_data1_);
76 }
77
78 TEST_F(SupportsUserDataTest, DataDestroyedOnDestruction) {
79 EXPECT_FALSE(supports_user_data_->GetUserData(kTestData1Key));
80 supports_user_data_->SetUserData(kTestData1Key, test_data1_);
81 EXPECT_FALSE(test_data1_was_destroyed_);
82 supports_user_data_.reset();
83 EXPECT_TRUE(test_data1_was_destroyed_);
84 }
85
86 TEST_F(SupportsUserDataTest, DataDestroyedOnRemoval) {
87 EXPECT_FALSE(supports_user_data_->GetUserData(kTestData1Key));
88 supports_user_data_->SetUserData(kTestData1Key, test_data1_);
89 EXPECT_FALSE(test_data1_was_destroyed_);
90 supports_user_data_->RemoveUserData(kTestData1Key);
91 EXPECT_TRUE(test_data1_was_destroyed_);
92 }
93
94 TEST_F(SupportsUserDataTest, DistinctDataStoredSeparately) {
95 EXPECT_FALSE(supports_user_data_->GetUserData(kTestData2Key));
96 supports_user_data_->SetUserData(kTestData1Key, test_data1_);
97 EXPECT_FALSE(supports_user_data_->GetUserData(kTestData2Key));
98 supports_user_data_->SetUserData(kTestData2Key, test_data2_);
99 EXPECT_EQ(supports_user_data_->GetUserData(kTestData2Key), test_data2_);
100 }
101
102 TEST_F(SupportsUserDataTest, DistinctDataDestroyedSeparately) {
103 supports_user_data_->SetUserData(kTestData1Key, test_data1_);
104 supports_user_data_->SetUserData(kTestData2Key, test_data2_);
105 EXPECT_FALSE(test_data1_was_destroyed_);
106 EXPECT_FALSE(test_data2_was_destroyed_);
107
108 supports_user_data_->RemoveUserData(kTestData2Key);
109 EXPECT_FALSE(test_data1_was_destroyed_);
110 EXPECT_TRUE(test_data2_was_destroyed_);
111
112 supports_user_data_.reset();
113 EXPECT_TRUE(test_data1_was_destroyed_);
114 }
115
116 } // namespace ios
OLDNEW
« no previous file with comments | « ios/consumer/base/supports_user_data.cc ('k') | ios/ios_base.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698