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.
5 #include "chrome/common/pref_names_util.h"
7 #include "testing/gtest/include/gtest/gtest.h"
11 void ExpectNoParse(const std::string
& path
) {
12 EXPECT_FALSE(pref_names_util::ParseFontNamePrefPath(path
, NULL
, NULL
));
15 void ExpectParse(const std::string
& path
,
16 const std::string
& expected_generic_family
,
17 const std::string
& expected_script
)
19 std::string generic_family
;
22 ASSERT_TRUE(pref_names_util::ParseFontNamePrefPath(path
, &generic_family
,
24 EXPECT_EQ(expected_generic_family
, generic_family
);
25 EXPECT_EQ(expected_script
, script
);
30 TEST(PrefNamesUtilTest
, Basic
) {
31 ExpectNoParse(std::string());
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",
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(), "..");
49 // Check that passing NULL output params is okay.
50 EXPECT_TRUE(pref_names_util::ParseFontNamePrefPath(
51 "webkit.webprefs.fonts.standard.Hrkt", NULL
, NULL
));