Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "components/arc/intent_helper/arc_intent_helper_bridge.h" | 5 #include "components/arc/intent_helper/arc_intent_helper_bridge.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "components/arc/common/intent_helper.mojom.h" | 9 #include "components/arc/common/intent_helper.mojom.h" |
| 10 #include "components/arc/intent_helper/activity_icon_loader.h" | |
| 11 #include "components/arc/intent_helper/local_activity_resolver.h" | |
| 12 #include "components/arc/test/fake_arc_bridge_service.h" | |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 14 |
| 12 namespace arc { | 15 namespace arc { |
| 13 | 16 |
| 17 namespace { | |
| 18 | |
| 19 class ArcIntentHelperTest : public testing::Test { | |
| 20 public: | |
| 21 ArcIntentHelperTest() | |
| 22 : icon_loader_(new ActivityIconLoader()), | |
|
hidehiko
2016/11/29 15:29:30
Optional: How about put these into SetUp()/TearDow
oka
2016/11/30 07:22:16
Done.
| |
| 23 activity_resolver_(new LocalActivityResolver()) {} | |
| 24 | |
| 25 protected: | |
| 26 std::unique_ptr<FakeArcBridgeService> fake_arc_bridge_service_; | |
|
hidehiko
2016/11/29 15:29:30
Could you kindly sort the order in the initializat
oka
2016/11/30 07:22:15
Done.
| |
| 27 scoped_refptr<ActivityIconLoader> icon_loader_; | |
| 28 scoped_refptr<LocalActivityResolver> activity_resolver_; | |
| 29 std::unique_ptr<ArcIntentHelperBridge> instance_; | |
| 30 | |
| 31 private: | |
| 32 void SetUp() override { | |
| 33 fake_arc_bridge_service_.reset(new FakeArcBridgeService()); | |
| 34 instance_.reset(new ArcIntentHelperBridge( | |
| 35 fake_arc_bridge_service_.get(), icon_loader_, activity_resolver_)); | |
| 36 } | |
| 37 | |
| 38 void TearDown() override { | |
| 39 instance_.reset(); | |
| 40 fake_arc_bridge_service_.reset(); | |
| 41 } | |
| 42 }; | |
|
hidehiko
2016/11/29 15:29:30
Could you add:
DISALLOW_COPY_AND_ASSIGN(ArcIntent
oka
2016/11/30 07:22:15
Done.
| |
| 43 | |
| 44 } // namespace | |
| 45 | |
| 14 // Tests if IsIntentHelperPackage works as expected. Probably too trivial | 46 // Tests if IsIntentHelperPackage works as expected. Probably too trivial |
| 15 // to test but just in case. | 47 // to test but just in case. |
| 16 TEST(ArcIntentHelperTest, TestIsIntentHelperPackage) { | 48 TEST_F(ArcIntentHelperTest, TestIsIntentHelperPackage) { |
| 17 EXPECT_FALSE(ArcIntentHelperBridge::IsIntentHelperPackage("")); | 49 EXPECT_FALSE(ArcIntentHelperBridge::IsIntentHelperPackage("")); |
| 18 EXPECT_FALSE(ArcIntentHelperBridge::IsIntentHelperPackage( | 50 EXPECT_FALSE(ArcIntentHelperBridge::IsIntentHelperPackage( |
| 19 ArcIntentHelperBridge::kArcIntentHelperPackageName + std::string("a"))); | 51 ArcIntentHelperBridge::kArcIntentHelperPackageName + std::string("a"))); |
| 20 EXPECT_FALSE(ArcIntentHelperBridge::IsIntentHelperPackage( | 52 EXPECT_FALSE(ArcIntentHelperBridge::IsIntentHelperPackage( |
| 21 ArcIntentHelperBridge::kArcIntentHelperPackageName + | 53 ArcIntentHelperBridge::kArcIntentHelperPackageName + |
| 22 std::string("/.ArcIntentHelperActivity"))); | 54 std::string("/.ArcIntentHelperActivity"))); |
| 23 EXPECT_TRUE(ArcIntentHelperBridge::IsIntentHelperPackage( | 55 EXPECT_TRUE(ArcIntentHelperBridge::IsIntentHelperPackage( |
| 24 ArcIntentHelperBridge::kArcIntentHelperPackageName)); | 56 ArcIntentHelperBridge::kArcIntentHelperPackageName)); |
| 25 } | 57 } |
| 26 | 58 |
| 27 // Tests if FilterOutIntentHelper removes handlers as expected. | 59 // Tests if FilterOutIntentHelper removes handlers as expected. |
| 28 TEST(ArcIntentHelperTest, TestFilterOutIntentHelper) { | 60 TEST_F(ArcIntentHelperTest, TestFilterOutIntentHelper) { |
| 29 { | 61 { |
| 30 std::vector<mojom::IntentHandlerInfoPtr> orig; | 62 std::vector<mojom::IntentHandlerInfoPtr> orig; |
| 31 std::vector<mojom::IntentHandlerInfoPtr> filtered = | 63 std::vector<mojom::IntentHandlerInfoPtr> filtered = |
| 32 ArcIntentHelperBridge::FilterOutIntentHelper(std::move(orig)); | 64 ArcIntentHelperBridge::FilterOutIntentHelper(std::move(orig)); |
| 33 EXPECT_EQ(0U, filtered.size()); | 65 EXPECT_EQ(0U, filtered.size()); |
| 34 } | 66 } |
| 35 | 67 |
| 36 { | 68 { |
| 37 std::vector<mojom::IntentHandlerInfoPtr> orig; | 69 std::vector<mojom::IntentHandlerInfoPtr> orig; |
| 38 orig.push_back(mojom::IntentHandlerInfo::New()); | 70 orig.push_back(mojom::IntentHandlerInfo::New()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 94 orig[1]->name = "1"; | 126 orig[1]->name = "1"; |
| 95 orig[1]->package_name = ArcIntentHelperBridge::kArcIntentHelperPackageName; | 127 orig[1]->package_name = ArcIntentHelperBridge::kArcIntentHelperPackageName; |
| 96 | 128 |
| 97 // FilterOutIntentHelper should remove all elements. | 129 // FilterOutIntentHelper should remove all elements. |
| 98 std::vector<mojom::IntentHandlerInfoPtr> filtered = | 130 std::vector<mojom::IntentHandlerInfoPtr> filtered = |
| 99 ArcIntentHelperBridge::FilterOutIntentHelper(std::move(orig)); | 131 ArcIntentHelperBridge::FilterOutIntentHelper(std::move(orig)); |
| 100 EXPECT_EQ(0U, filtered.size()); | 132 EXPECT_EQ(0U, filtered.size()); |
| 101 } | 133 } |
| 102 } | 134 } |
| 103 | 135 |
| 136 // Tests if observer works as expected. | |
| 137 TEST_F(ArcIntentHelperTest, TestObserver) { | |
| 138 struct FakeObserver : public ArcIntentHelperObserver { | |
|
hidehiko
2016/11/29 15:29:30
Could you use class, instead?
https://google.githu
oka
2016/11/30 07:22:15
Done.
| |
| 139 public: | |
| 140 FakeObserver() : updated_(false) {} | |
|
hidehiko
2016/11/29 15:29:30
You can initialize the member at declaration.
Fak
oka
2016/11/30 07:22:16
Done.
| |
| 141 void OnAppsUpdated() override { updated_ = true; } | |
| 142 bool updated_; | |
|
hidehiko
2016/11/29 15:29:30
the field should be private.
https://google.github
oka
2016/11/30 07:22:16
Done.
| |
| 143 }; | |
| 144 | |
| 145 // Observer should be called when intent filter is updated. | |
|
hidehiko
2016/11/29 15:29:30
Nice description!
oka
2016/11/30 07:22:15
Done.
| |
| 146 std::unique_ptr<FakeObserver> observer(new FakeObserver()); | |
|
hidehiko
2016/11/29 15:29:30
Optional:
auto observer = base::MakeUnique<FakeOb
oka
2016/11/30 07:22:15
Done.
| |
| 147 instance_->AddObserver(observer.get()); | |
| 148 std::vector<mojom::IntentFilterPtr> v; | |
|
hidehiko
2016/11/29 15:29:30
Optional:
I think you can inline the vector.
EXC
oka
2016/11/30 07:22:15
Done.
| |
| 149 EXPECT_FALSE(observer->updated_); | |
| 150 instance_->OnIntentFiltersUpdated(std::move(v)); | |
| 151 EXPECT_TRUE(observer->updated_); | |
| 152 | |
| 153 // Observer should not be called after it's removed. | |
| 154 observer->updated_ = false; | |
| 155 instance_->RemoveObserver(observer.get()); | |
| 156 std::vector<mojom::IntentFilterPtr> v2; | |
| 157 instance_->OnIntentFiltersUpdated(std::move(v2)); | |
| 158 EXPECT_FALSE(observer->updated_); | |
| 159 } | |
| 160 | |
| 104 } // namespace arc | 161 } // namespace arc |
| OLD | NEW |