Index: extensions/browser/extension_registry_unittest.cc |
diff --git a/extensions/browser/extension_registry_unittest.cc b/extensions/browser/extension_registry_unittest.cc |
index fbf34c0cb6f49d541ecd6cc5a9687d41a0449b08..3d11f8be9684dbf3d0ecf0fa1c2d60c321633952 100644 |
--- a/extensions/browser/extension_registry_unittest.cc |
+++ b/extensions/browser/extension_registry_unittest.cc |
@@ -10,6 +10,7 @@ |
#include "base/memory/ref_counted.h" |
#include "extensions/browser/extension_registry_observer.h" |
#include "extensions/browser/uninstall_reason.h" |
+#include "extensions/common/extension_builder.h" |
#include "extensions/common/test_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -72,11 +73,11 @@ class TestObserver : public ExtensionRegistryObserver { |
void OnExtensionUninstalled(content::BrowserContext* browser_context, |
const Extension* extension, |
- extensions::UninstallReason reason) override { |
+ UninstallReason reason) override { |
uninstalled_.push_back(extension); |
} |
- void OnShutdown(extensions::ExtensionRegistry* registry) override { Reset(); } |
+ void OnShutdown(ExtensionRegistry* registry) override { Reset(); } |
ExtensionList loaded_; |
ExtensionList unloaded_; |
@@ -272,5 +273,41 @@ TEST_F(ExtensionRegistryTest, Observer) { |
registry.RemoveObserver(&observer); |
} |
+// Regression test for https://crbug.com/724563. |
+TEST_F(ExtensionRegistryTest, TerminatedExtensionStoredVersion) { |
+ const std::string kVersionString = "1.2.3.4"; |
+ ExtensionRegistry registry(nullptr); |
+ scoped_refptr<Extension> extension = |
+ ExtensionBuilder() |
+ .SetManifest(DictionaryBuilder() |
+ .Set("name", "Test") |
+ .Set("version", kVersionString) |
+ .Build()) |
+ .Build(); |
+ const ExtensionId extension_id = extension->id(); |
+ |
+ EXPECT_TRUE(registry.AddEnabled(extension)); |
+ EXPECT_FALSE( |
+ registry.GetExtensionById(extension_id, ExtensionRegistry::TERMINATED)); |
+ { |
+ base::Version version = registry.GetStoredVersion(extension_id); |
+ ASSERT_TRUE(version.IsValid()); |
+ EXPECT_EQ(kVersionString, |
+ registry.GetStoredVersion(extension_id).GetString()); |
+ } |
+ |
+ // Simulate terminating |extension|. |
+ EXPECT_TRUE(registry.RemoveEnabled(extension_id)); |
lazyboy
2017/05/25 21:38:27
Moved the test to this file. However, is this the
Devlin
2017/05/25 21:40:12
Yep; this should be fine.
|
+ EXPECT_TRUE(registry.AddTerminated(extension)); |
+ EXPECT_TRUE( |
+ registry.GetExtensionById(extension_id, ExtensionRegistry::TERMINATED)); |
+ { |
+ base::Version version = registry.GetStoredVersion(extension_id); |
+ ASSERT_TRUE(version.IsValid()); |
+ EXPECT_EQ(kVersionString, |
+ registry.GetStoredVersion(extension_id).GetString()); |
+ } |
+} |
+ |
} // namespace |
} // namespace extensions |