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

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

Issue 339059: Add compiler-specific "examine printf format" attributes to printfs. (Closed)
Patch Set: cleanups Created 11 years, 1 month 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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"
6
7 #include "base/format_macros.h"
5 #include "base/file_path.h" 8 #include "base/file_path.h"
6 #include "base/file_util.h" 9 #include "base/file_util.h"
7 #include "base/string_util.h" 10 #include "base/string_util.h"
8 #include "base/path_service.h" 11 #include "base/path_service.h"
9 #include "chrome/common/chrome_paths.h" 12 #include "chrome/common/chrome_paths.h"
10 #include "chrome/common/extensions/extension.h"
11 #include "chrome/common/extensions/extension_constants.h" 13 #include "chrome/common/extensions/extension_constants.h"
12 #include "chrome/common/extensions/extension_error_reporter.h" 14 #include "chrome/common/extensions/extension_error_reporter.h"
13 #include "chrome/common/json_value_serializer.h" 15 #include "chrome/common/json_value_serializer.h"
14 #include "net/base/mime_sniffer.h" 16 #include "net/base/mime_sniffer.h"
15 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
16 18
17 namespace keys = extension_manifest_keys; 19 namespace keys = extension_manifest_keys;
18 namespace values = extension_manifest_values; 20 namespace values = extension_manifest_values;
19 namespace errors = extension_manifest_errors; 21 namespace errors = extension_manifest_errors;
20 22
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 valid.push_back("http://test.com"); 456 valid.push_back("http://test.com");
455 valid.push_back("http://test.com/"); 457 valid.push_back("http://test.com/");
456 valid.push_back("http://test.com/update"); 458 valid.push_back("http://test.com/update");
457 valid.push_back("http://test.com/update?check=true"); 459 valid.push_back("http://test.com/update?check=true");
458 for (size_t i = 0; i < valid.size(); i++) { 460 for (size_t i = 0; i < valid.size(); i++) {
459 GURL url(valid[i]); 461 GURL url(valid[i]);
460 EXPECT_TRUE(url.is_valid()); 462 EXPECT_TRUE(url.is_valid());
461 463
462 DictionaryValue input_value; 464 DictionaryValue input_value;
463 #if defined(OS_WIN) 465 #if defined(OS_WIN)
464 FilePath path(StringPrintf(L"c:\\extension%i", i)); 466 // (Why %d below? This is the single place in the whole code base that
467 // might make use of a WidePRIuS; let's not encourage any more.)
Mark Mentovai 2009/11/18 20:55:27 OK, that's fair enough. But wouldn't it be L"%Iu"
468 FilePath path(StringPrintf(L"c:\\extension%d", i));
465 #else 469 #else
466 FilePath path(StringPrintf("/extension%i", i)); 470 FilePath path(StringPrintf("/extension%" PRIuS, i));
467 #endif 471 #endif
468 Extension extension(path); 472 Extension extension(path);
469 std::string error; 473 std::string error;
470 474
471 input_value.SetString(keys::kVersion, "1.0"); 475 input_value.SetString(keys::kVersion, "1.0");
472 input_value.SetString(keys::kName, "Test"); 476 input_value.SetString(keys::kName, "Test");
473 input_value.SetString(keys::kUpdateURL, url.spec()); 477 input_value.SetString(keys::kUpdateURL, url.spec());
474 478
475 EXPECT_TRUE(extension.InitFromValue(input_value, false, &error)); 479 EXPECT_TRUE(extension.InitFromValue(input_value, false, &error));
476 } 480 }
477 481
478 // Test some invalid update urls 482 // Test some invalid update urls
479 std::vector<std::string> invalid; 483 std::vector<std::string> invalid;
480 invalid.push_back(""); 484 invalid.push_back("");
481 invalid.push_back("test.com"); 485 invalid.push_back("test.com");
482 valid.push_back("http://test.com/update#whatever"); 486 valid.push_back("http://test.com/update#whatever");
483 for (size_t i = 0; i < invalid.size(); i++) { 487 for (size_t i = 0; i < invalid.size(); i++) {
484 DictionaryValue input_value; 488 DictionaryValue input_value;
485 #if defined(OS_WIN) 489 #if defined(OS_WIN)
486 FilePath path(StringPrintf(L"c:\\extension%i", i)); 490 // We should use PRIuS here, but it's a wide string. This is the only
491 // instance of a wide string needing PRIuS in the entire code base, so
492 // let's just work around it here.
Mark Mentovai 2009/11/18 20:55:27 Same. Oh, I guess there are two locations...
493 FilePath path(StringPrintf(L"c:\\extension%d", i));
487 #else 494 #else
488 FilePath path(StringPrintf("/extension%i", i)); 495 FilePath path(StringPrintf("/extension%" PRIuS, i));
489 #endif 496 #endif
490 Extension extension(path); 497 Extension extension(path);
491 std::string error; 498 std::string error;
492 input_value.SetString(keys::kVersion, "1.0"); 499 input_value.SetString(keys::kVersion, "1.0");
493 input_value.SetString(keys::kName, "Test"); 500 input_value.SetString(keys::kName, "Test");
494 input_value.SetString(keys::kUpdateURL, invalid[i]); 501 input_value.SetString(keys::kUpdateURL, invalid[i]);
495 502
496 EXPECT_FALSE(extension.InitFromValue(input_value, false, &error)); 503 EXPECT_FALSE(extension.InitFromValue(input_value, false, &error));
497 EXPECT_TRUE(MatchPattern(error, errors::kInvalidUpdateURL)); 504 EXPECT_TRUE(MatchPattern(error, errors::kInvalidUpdateURL));
498 } 505 }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 scoped_ptr<Extension> new_extension( 662 scoped_ptr<Extension> new_extension(
656 LoadManifest("allow_silent_upgrade", 663 LoadManifest("allow_silent_upgrade",
657 std::string(kTests[i].base_name) + "_new.json")); 664 std::string(kTests[i].base_name) + "_new.json"));
658 665
659 EXPECT_EQ(kTests[i].expect_success, 666 EXPECT_EQ(kTests[i].expect_success,
660 Extension::IsPrivilegeIncrease(old_extension.get(), 667 Extension::IsPrivilegeIncrease(old_extension.get(),
661 new_extension.get())) 668 new_extension.get()))
662 << kTests[i].base_name; 669 << kTests[i].base_name;
663 } 670 }
664 } 671 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698