Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: chrome/common/extensions/extension_unittest.cc

Issue 1120006: detect preferences errors (Closed)
Patch Set: changes from review Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/extensions/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include "base/format_macros.h" 7 #include "base/format_macros.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 // Bug: http://crbug.com/38462 43 // Bug: http://crbug.com/38462
44 44
45 45
46 TEST(ExtensionTest, InitFromValueInvalid) { 46 TEST(ExtensionTest, InitFromValueInvalid) {
47 #if defined(OS_WIN) 47 #if defined(OS_WIN)
48 FilePath path(FILE_PATH_LITERAL("c:\\foo")); 48 FilePath path(FILE_PATH_LITERAL("c:\\foo"));
49 #elif defined(OS_POSIX) 49 #elif defined(OS_POSIX)
50 FilePath path(FILE_PATH_LITERAL("/foo")); 50 FilePath path(FILE_PATH_LITERAL("/foo"));
51 #endif 51 #endif
52 Extension extension(path); 52 Extension extension(path);
53 int error_code = 0;
53 std::string error; 54 std::string error;
54 ExtensionErrorReporter::Init(false); 55 ExtensionErrorReporter::Init(false);
55 56
56 // Start with a valid extension manifest 57 // Start with a valid extension manifest
57 FilePath extensions_path; 58 FilePath extensions_path;
58 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path)); 59 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
59 extensions_path = extensions_path.AppendASCII("extensions") 60 extensions_path = extensions_path.AppendASCII("extensions")
60 .AppendASCII("good") 61 .AppendASCII("good")
61 .AppendASCII("Extensions") 62 .AppendASCII("Extensions")
62 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 63 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
63 .AppendASCII("1.0.0.0") 64 .AppendASCII("1.0.0.0")
64 .Append(Extension::kManifestFilename); 65 .Append(Extension::kManifestFilename);
65 66
66 JSONFileValueSerializer serializer(extensions_path); 67 JSONFileValueSerializer serializer(extensions_path);
67 scoped_ptr<DictionaryValue> valid_value( 68 scoped_ptr<DictionaryValue> valid_value(
68 static_cast<DictionaryValue*>(serializer.Deserialize(&error))); 69 static_cast<DictionaryValue*>(serializer.Deserialize(&error_code,
70 &error)));
69 EXPECT_EQ("", error); 71 EXPECT_EQ("", error);
72 EXPECT_EQ(0, error_code);
70 ASSERT_TRUE(valid_value.get()); 73 ASSERT_TRUE(valid_value.get());
71 ASSERT_TRUE(extension.InitFromValue(*valid_value, true, &error)); 74 ASSERT_TRUE(extension.InitFromValue(*valid_value, true, &error));
72 ASSERT_EQ("", error); 75 ASSERT_EQ("", error);
73 EXPECT_EQ("en_US", extension.default_locale()); 76 EXPECT_EQ("en_US", extension.default_locale());
74 77
75 scoped_ptr<DictionaryValue> input_value; 78 scoped_ptr<DictionaryValue> input_value;
76 79
77 // Test missing and invalid versions 80 // Test missing and invalid versions
78 input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy())); 81 input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
79 input_value->Remove(keys::kVersion, NULL); 82 input_value->Remove(keys::kVersion, NULL);
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 650
648 static Extension* LoadManifest(const std::string& dir, 651 static Extension* LoadManifest(const std::string& dir,
649 const std::string& test_file) { 652 const std::string& test_file) {
650 FilePath path; 653 FilePath path;
651 PathService::Get(chrome::DIR_TEST_DATA, &path); 654 PathService::Get(chrome::DIR_TEST_DATA, &path);
652 path = path.AppendASCII("extensions") 655 path = path.AppendASCII("extensions")
653 .AppendASCII(dir) 656 .AppendASCII(dir)
654 .AppendASCII(test_file); 657 .AppendASCII(test_file);
655 658
656 JSONFileValueSerializer serializer(path); 659 JSONFileValueSerializer serializer(path);
657 scoped_ptr<Value> result(serializer.Deserialize(NULL)); 660 scoped_ptr<Value> result(serializer.Deserialize(NULL, NULL));
658 if (!result.get()) 661 if (!result.get())
659 return NULL; 662 return NULL;
660 663
661 std::string error; 664 std::string error;
662 scoped_ptr<Extension> extension(new Extension(path.DirName())); 665 scoped_ptr<Extension> extension(new Extension(path.DirName()));
663 extension->InitFromValue(*static_cast<DictionaryValue*>(result.get()), 666 extension->InitFromValue(*static_cast<DictionaryValue*>(result.get()),
664 false, &error); 667 false, &error);
665 668
666 return extension.release(); 669 return extension.release();
667 } 670 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 scoped_ptr<Extension> new_extension( 783 scoped_ptr<Extension> new_extension(
781 LoadManifest("allow_silent_upgrade", 784 LoadManifest("allow_silent_upgrade",
782 std::string(kTests[i].base_name) + "_new.json")); 785 std::string(kTests[i].base_name) + "_new.json"));
783 786
784 EXPECT_EQ(kTests[i].expect_success, 787 EXPECT_EQ(kTests[i].expect_success,
785 Extension::IsPrivilegeIncrease(old_extension.get(), 788 Extension::IsPrivilegeIncrease(old_extension.get(),
786 new_extension.get())) 789 new_extension.get()))
787 << kTests[i].base_name; 790 << kTests[i].base_name;
788 } 791 }
789 } 792 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_manifests_unittest.cc ('k') | chrome/common/extensions/extension_unpacker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698