Index: ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm |
diff --git a/ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm b/ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ba897617bde0d7ab235511c11e475a76a3588edf |
--- /dev/null |
+++ b/ios/chrome/browser/ui/activity_services/activity_type_util_unittest.mm |
@@ -0,0 +1,107 @@ |
+// Copyright 2014 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. |
+ |
+#import "ios/chrome/browser/ui/activity_services/activity_type_util.h" |
+ |
+#include "ios/chrome/browser/ui/activity_services/appex_constants.h" |
+#include "ios/chrome/browser/ui/activity_services/print_activity.h" |
+#include "ios/chrome/grit/ios_strings.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "testing/gtest_mac.h" |
+#include "ui/base/l10n/l10n_util_mac.h" |
+ |
+namespace { |
+ |
+void StringToTypeTestHelper(NSString* activityString, |
+ activity_type_util::ActivityType expectedType) { |
+ EXPECT_EQ(activity_type_util::TypeFromString(activityString), expectedType); |
+} |
+ |
+TEST(ActivityTypeUtilTest, StringToTypeTest) { |
+ StringToTypeTestHelper(@"", activity_type_util::UNKNOWN); |
+ StringToTypeTestHelper(@"foo", activity_type_util::UNKNOWN); |
+ StringToTypeTestHelper(@"com.google", activity_type_util::UNKNOWN); |
+ StringToTypeTestHelper(@"com.google.", activity_type_util::GOOGLE_UNKNOWN); |
+ StringToTypeTestHelper(@"com.google.Gmail", |
+ activity_type_util::GOOGLE_UNKNOWN); |
+ StringToTypeTestHelper(@"com.google.Gmail.Bar", |
+ activity_type_util::GOOGLE_GMAIL); |
+ StringToTypeTestHelper(@"com.apple.UIKit.activity.Mail", |
+ activity_type_util::NATIVE_MAIL); |
+ StringToTypeTestHelper(@"com.apple.UIKit.activity.Mail.Qux", |
+ activity_type_util::UNKNOWN); |
+ StringToTypeTestHelper([PrintActivity activityIdentifier], |
+ activity_type_util::PRINT); |
+} |
+ |
+void TypeToMessageTestHelper(activity_type_util::ActivityType type, |
+ NSString* expectedMessage) { |
+ EXPECT_NSEQ(activity_type_util::SuccessMessageForActivity(type), |
+ expectedMessage); |
+} |
+ |
+TEST(ActivityTypeUtilTest, TypeToMessageTest) { |
+ TypeToMessageTestHelper(activity_type_util::UNKNOWN, nil); |
+ TypeToMessageTestHelper(activity_type_util::PRINT, nil); |
+ TypeToMessageTestHelper( |
+ activity_type_util::NATIVE_TWITTER, |
+ l10n_util::GetNSString(IDS_IOS_SHARE_TWITTER_COMPLETE)); |
+ TypeToMessageTestHelper( |
+ activity_type_util::APPEX_PASSWORD_MANAGEMENT_OTHERS, |
+ l10n_util::GetNSString(IDS_IOS_APPEX_PASSWORD_FORM_FILLED_SUCCESS)); |
+} |
+ |
+TEST(ActivityTypeUtilTest, IsPasswordAppExtensionTest) { |
+ // Verifies that known Bundle ID for 1Password requires exact match. |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.agilebits.onepassword-ios.extension")); |
+ EXPECT_FALSE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.agilebits.onepassword-ios.extension.otherstuff")); |
+ // Verifies that known Bundle ID for LastPass requires exact match. |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.lastpass.ilastpass.LastPassExt")); |
+ EXPECT_FALSE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.lastpass.ilastpass.LastPassExt.otherstuff")); |
+ // Verifies that both variants of Dashlane Bundle IDs are recognized. |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.dashlane.dashlanephonefinal.SafariExtension")); |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.dashlane.dashlanephonefinal.appextension")); |
+ // Verifies that any Bundle ID with @"find-login-action" is recognized. |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.some-company.find-login-action.an-extension")); |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.some-company.compatible-find-login-action-an-extension")); |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.some-company.find-login-action-as-prefix")); |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.some-company.with-suffix-of-find-login-action")); |
+ EXPECT_TRUE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.google.find-login-action.extension")); |
+ // Verifies non-matching Bundle IDs. |
+ EXPECT_FALSE( |
+ activity_type_util::IsPasswordAppExActivity(@"com.google.chrome.ios")); |
+ EXPECT_FALSE(activity_type_util::IsPasswordAppExActivity( |
+ @"com.apple.UIKit.activity.PostToFacebook")); |
+} |
+ |
+TEST(ActivityTypeUtilTest, PasswordAppExtensionVersionTest) { |
+ EXPECT_EQ(activity_services::kPasswordAppExVersionNumber, |
+ activity_type_util::PasswordAppExActivityVersion( |
+ @"com.agilebits.onepassword-ios.extension")); |
+ EXPECT_EQ(activity_services::kPasswordAppExVersionNumber, |
+ activity_type_util::PasswordAppExActivityVersion( |
+ @"com.lastpass.ilastpass.LastPassExt")); |
+ EXPECT_EQ(activity_services::kPasswordAppExVersionNumber, |
+ activity_type_util::PasswordAppExActivityVersion( |
+ @"com.dashlane.dashlanephonefinal.SafariExtension")); |
+ EXPECT_EQ(activity_services::kPasswordAppExVersionNumber, |
+ activity_type_util::PasswordAppExActivityVersion( |
+ @"com.some-company.find-login-action.an-extension")); |
+ EXPECT_NE(activity_services::kPasswordAppExVersionNumber, |
+ activity_type_util::PasswordAppExActivityVersion( |
+ @"com.apple.UIKit.activity.PostToFacebook")); |
+} |
+ |
+} // namespace |