Index: chrome/browser/extensions/extension_ui_unittest.cc |
diff --git a/chrome/browser/extensions/extension_ui_unittest.cc b/chrome/browser/extensions/extension_ui_unittest.cc |
index a9b65ceafb839f9809b1aaaa8a4fa43ce082fad8..b59e51c344717cb672a051249c559c78f5164163 100644 |
--- a/chrome/browser/extensions/extension_ui_unittest.cc |
+++ b/chrome/browser/extensions/extension_ui_unittest.cc |
@@ -21,7 +21,7 @@ namespace { |
return static_cast<DictionaryValue*>(value); |
} |
- static bool CompareExpectedAndActualOutput( |
+ static void CheckExpectedAndActualOutput( |
const FilePath& extension_path, |
const std::vector<ExtensionPage>& pages, |
const FilePath& expected_output_path) { |
@@ -56,8 +56,23 @@ namespace { |
ExtensionsDOMHandler::CreateExtensionDetailValue(NULL, extension.get(), |
pages, true, false)); |
- // Compare the outputs. |
- return expected_output_data->Equals(actual_output_data.get()); |
+ // If the comparison fails, it's easiest to understand why when comparing |
+ // the JSON serializations. |
+ std::string details = "Expected (" + |
+ expected_output_path.MaybeAsASCII() + "):\n"; |
+ std::string serialization = ""; |
+ JSONStringValueSerializer serializer(&serialization); |
+ serializer.set_pretty_print(true); |
+ serializer.Serialize(*expected_output_data); |
+ details += serialization; |
+ |
+ details += "\nActual (" + extension_path.MaybeAsASCII() + "):\n"; |
+ serialization.clear(); |
+ serializer.Serialize(*actual_output_data); |
+ details += serialization; |
+ |
+ EXPECT_TRUE(expected_output_data->Equals(actual_output_data.get())) |
+ << details; |
} |
} // namespace |
@@ -85,8 +100,7 @@ TEST(ExtensionUITest, GenerateExtensionsJSONData) { |
.AppendASCII("create_extension_detail_value_expected_output") |
.AppendASCII("good-extension1.json"); |
- EXPECT_TRUE(CompareExpectedAndActualOutput(extension_path, pages, |
- expected_output_path)) << extension_path.value(); |
+ CheckExpectedAndActualOutput(extension_path, pages, expected_output_path); |
#if !defined(OS_CHROMEOS) |
// Test Extension2 |
@@ -104,8 +118,7 @@ TEST(ExtensionUITest, GenerateExtensionsJSONData) { |
// It's OK to have duplicate URLs, so long as the IDs are different. |
pages[1].url = pages[0].url; |
- EXPECT_TRUE(CompareExpectedAndActualOutput(extension_path, pages, |
- expected_output_path)) << extension_path.value(); |
+ CheckExpectedAndActualOutput(extension_path, pages, expected_output_path); |
#endif |
// Test Extension3 |
@@ -122,6 +135,5 @@ TEST(ExtensionUITest, GenerateExtensionsJSONData) { |
pages.clear(); |
- EXPECT_TRUE(CompareExpectedAndActualOutput(extension_path, pages, |
- expected_output_path)) << extension_path.value(); |
+ CheckExpectedAndActualOutput(extension_path, pages, expected_output_path); |
} |