| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "ios/testing/earl_grey/app_launch_argument_generator.h" |
| |
| #import "base/feature_list.h" |
| #import "testing/gtest/include/gtest/gtest.h" |
| #import "testing/gtest_mac.h" |
| #import "testing/platform_test.h" |
| |
| namespace { |
| BASE_FEATURE(kTestOne, "test_one", base::FEATURE_DISABLED_BY_DEFAULT); |
| } // namespace |
| |
| // Unittests related to generating app launch arguments. |
| class AppLaunchArgumentGeneratorTest : public PlatformTest { |
| public: |
| AppLaunchArgumentGeneratorTest() {} |
| ~AppLaunchArgumentGeneratorTest() override {} |
| }; |
| |
| TEST_F(AppLaunchArgumentGeneratorTest, MergeMultipleEnabledFlags) { |
| AppLaunchConfiguration configuration; |
| configuration.additional_args.push_back("--enable-features=TestOne"); |
| configuration.additional_args.push_back("--enable-features=TestTwo"); |
| |
| NSArray<NSString*>* arguments = ArgumentsFromConfiguration(configuration); |
| |
| bool found_enable_features = false; |
| for (NSString* argument : arguments) { |
| if ([argument hasPrefix:@"--enable-features"]) { |
| if (found_enable_features) { |
| ADD_FAILURE() << "Arguments has 2 --enable-features entries"; |
| } |
| found_enable_features = true; |
| EXPECT_NSEQ(argument, @"--enable-features=TestOne,TestTwo"); |
| } |
| } |
| EXPECT_TRUE(found_enable_features); |
| } |
| |
| TEST_F(AppLaunchArgumentGeneratorTest, MergeEnabledAndFeatures) { |
| AppLaunchConfiguration configuration; |
| configuration.features_enabled.push_back(kTestOne); |
| configuration.additional_args.push_back("--enable-features=TestTwo"); |
| |
| NSArray<NSString*>* arguments = ArgumentsFromConfiguration(configuration); |
| |
| bool found_enable_features = false; |
| for (NSString* argument : arguments) { |
| if ([argument hasPrefix:@"--enable-features"]) { |
| if (found_enable_features) { |
| ADD_FAILURE() << "Arguments has 2 --enable-features entries"; |
| } |
| found_enable_features = true; |
| EXPECT_NSEQ(argument, @"--enable-features=test_one,TestTwo"); |
| } |
| } |
| EXPECT_TRUE(found_enable_features); |
| } |