12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/test/expectations/expectation.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(TestExpectationsFunctionsTest, ResultFromString) { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Result result = test_expectations::RESULT_PASS; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ResultFromString("Failure", &result)); 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::RESULT_FAILURE, result); 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ResultFromString("Timeout", &result)); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::RESULT_TIMEOUT, result); 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ResultFromString("Crash", &result)); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::RESULT_CRASH, result); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ResultFromString("Skip", &result)); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::RESULT_SKIP, result); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ResultFromString("Pass", &result)); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::RESULT_PASS, result); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Case sensitive. 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(ResultFromString("failure", &result)); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::RESULT_PASS, result); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(TestExpectationsFunctionsTest, ConfigurationFromString) { 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Configuration config = 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::CONFIGURATION_UNSPECIFIED; 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ConfigurationFromString("Debug", &config)); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::CONFIGURATION_DEBUG, config); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ConfigurationFromString("Release", &config)); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::CONFIGURATION_RELEASE, config); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(ConfigurationFromString("NotAConfig", &config)); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::CONFIGURATION_RELEASE, config); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Case sensitive. 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(ConfigurationFromString("debug", &config)); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(test_expectations::CONFIGURATION_RELEASE, config); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(TestExpectationsFunctionsTest, PlatformFromString) { 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Platform platform; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(PlatformFromString("Win", &platform)); 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("Win", platform.name); 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("", platform.variant); 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(PlatformFromString("Mac-10.6", &platform)); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("Mac", platform.name); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("10.6", platform.variant); 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(PlatformFromString("ChromeOS", &platform)); 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("ChromeOS", platform.name); 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("", platform.variant); 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(PlatformFromString("Linux-", &platform)); 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("Linux", platform.name); 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ("", platform.variant); 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(PlatformFromString("", &platform)); 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(TestExpectationsFunctionsTest, IsValidPlatform) { 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* kValidPlatforms[] = { 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Win", 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Win-XP", 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Win-Vista", 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Win-7", 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Win-8", 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Mac", 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Mac-10.6", 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Mac-10.7", 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Mac-10.8", 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Linux", 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Linux-32", 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Linux-64", 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "ChromeOS", 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "iOS", 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Android", 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* kInvalidPlatforms[] = { 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Solaris", 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "Plan9", 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (size_t i = 0; i < arraysize(kValidPlatforms); ++i) { 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Platform platform; 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(test_expectations::PlatformFromString( 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kValidPlatforms[i], &platform)) << kValidPlatforms[i]; 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (size_t i = 0; i < arraysize(kInvalidPlatforms); ++i) { 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Platform platform; 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(test_expectations::PlatformFromString( 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kInvalidPlatforms[i], &platform)) << kInvalidPlatforms[i]; 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(TestExpectationsFunctionsTest, CurrentPlatform) { 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Platform current = 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::GetCurrentPlatform(); 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(current.name.empty()); 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(TestExpectationsFunctionsTest, CurrentConfiguration) { 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::Configuration current = 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_expectations::GetCurrentConfiguration(); 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_NE(test_expectations::CONFIGURATION_UNSPECIFIED, current); 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 121