Home | History | Annotate | Download | only in importer
      1 // Copyright (c) 2010 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 "testing/gtest/include/gtest/gtest.h"
      6 
      7 #include "chrome/browser/importer/firefox_importer_utils.h"
      8 
      9 struct GetPrefsJsValueCase {
     10   std::string prefs_content;
     11   std::string pref_name;
     12   std::string pref_value;
     13 } GetPrefsJsValueCases[] = {
     14   // Basic case. Single pref, unquoted value.
     15   { "user_pref(\"foo.bar\", 1);", "foo.bar", "1" },
     16   // Value is quoted. Quotes should be stripped.
     17   { "user_pref(\"foo.bar\", \"1\");", "foo.bar", "1" },
     18   // Value has parens.
     19   { "user_pref(\"foo.bar\", \"Value (detail)\");",
     20     "foo.bar", "Value (detail)" },
     21   // Multi-line case.
     22   { "user_pref(\"foo.bar\", 1);\n"
     23     "user_pref(\"foo.baz\", 2);\n"
     24     "user_pref(\"foo.bag\", 3);",
     25     "foo.baz", "2" },
     26   // Malformed content.
     27   { "user_pref(\"foo.bar\", 1);\n"
     28     "user_pref(\"foo.baz\", 2;\n"
     29     "user_pref(\"foo.bag\", 3);",
     30     "foo.baz", "" },
     31   // Malformed content.
     32   { "uesr_pref(\"foo.bar\", 1);", "foo.bar", "" },
     33 };
     34 
     35 TEST(FirefoxImporterUtilsTest, GetPrefsJsValue) {
     36   for (size_t i = 0; i < arraysize(GetPrefsJsValueCases); ++i) {
     37     EXPECT_EQ(
     38       GetPrefsJsValueCases[i].pref_value,
     39       GetPrefsJsValue(GetPrefsJsValueCases[i].prefs_content,
     40                       GetPrefsJsValueCases[i].pref_name));
     41   }
     42 }
     43