// Copyright (c) 2012 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. #include "chrome/common/pref_names_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace { void ExpectNoParse(const std::string& path) { EXPECT_FALSE(pref_names_util::ParseFontNamePrefPath(path, NULL, NULL)); } void ExpectParse(const std::string& path, const std::string& expected_generic_family, const std::string& expected_script) { std::string generic_family; std::string script; ASSERT_TRUE(pref_names_util::ParseFontNamePrefPath(path, &generic_family, &script)); EXPECT_EQ(expected_generic_family, generic_family); EXPECT_EQ(expected_script, script); } } // namespace TEST(PrefNamesUtilTest, Basic) { ExpectNoParse(std::string()); ExpectNoParse("."); ExpectNoParse("....."); ExpectNoParse("webkit.webprefs.fonts."); ExpectNoParse("webkit.webprefs.fonts.."); ExpectNoParse("webkit.webprefs.fontsfoobar.standard.Hrkt"); ExpectNoParse("foobar.webprefs.fonts.standard.Hrkt"); ExpectParse("webkit.webprefs.fonts.standard.Hrkt", "standard", "Hrkt"); ExpectParse("webkit.webprefs.fonts.standard.Hrkt.", "standard", "Hrkt."); ExpectParse("webkit.webprefs.fonts.standard.Hrkt.Foobar", "standard", "Hrkt.Foobar"); // We don't particularly care about the parsed family and script for these // inputs, but just want to make sure it does something reasonable. Returning // false may also be an option. ExpectParse("webkit.webprefs.fonts...", std::string(), "."); ExpectParse("webkit.webprefs.fonts....", std::string(), ".."); // Check that passing NULL output params is okay. EXPECT_TRUE(pref_names_util::ParseFontNamePrefPath( "webkit.webprefs.fonts.standard.Hrkt", NULL, NULL)); }