1 // Copyright (c) 2012 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 "chrome/common/pref_names_util.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace { 10 11 void ExpectNoParse(const std::string& path) { 12 EXPECT_FALSE(pref_names_util::ParseFontNamePrefPath(path, NULL, NULL)); 13 } 14 15 void ExpectParse(const std::string& path, 16 const std::string& expected_generic_family, 17 const std::string& expected_script) 18 { 19 std::string generic_family; 20 std::string script; 21 22 ASSERT_TRUE(pref_names_util::ParseFontNamePrefPath(path, &generic_family, 23 &script)); 24 EXPECT_EQ(expected_generic_family, generic_family); 25 EXPECT_EQ(expected_script, script); 26 } 27 28 } // namespace 29 30 TEST(PrefNamesUtilTest, Basic) { 31 ExpectNoParse(std::string()); 32 ExpectNoParse("."); 33 ExpectNoParse("....."); 34 ExpectNoParse("webkit.webprefs.fonts."); 35 ExpectNoParse("webkit.webprefs.fonts.."); 36 ExpectNoParse("webkit.webprefs.fontsfoobar.standard.Hrkt"); 37 ExpectNoParse("foobar.webprefs.fonts.standard.Hrkt"); 38 ExpectParse("webkit.webprefs.fonts.standard.Hrkt", "standard", "Hrkt"); 39 ExpectParse("webkit.webprefs.fonts.standard.Hrkt.", "standard", "Hrkt."); 40 ExpectParse("webkit.webprefs.fonts.standard.Hrkt.Foobar", "standard", 41 "Hrkt.Foobar"); 42 43 // We don't particularly care about the parsed family and script for these 44 // inputs, but just want to make sure it does something reasonable. Returning 45 // false may also be an option. 46 ExpectParse("webkit.webprefs.fonts...", std::string(), "."); 47 ExpectParse("webkit.webprefs.fonts....", std::string(), ".."); 48 49 // Check that passing NULL output params is okay. 50 EXPECT_TRUE(pref_names_util::ParseFontNamePrefPath( 51 "webkit.webprefs.fonts.standard.Hrkt", NULL, NULL)); 52 } 53