Index: chrome/renderer/resources/extension_apitest.js |
diff --git a/chrome/renderer/resources/extension_apitest.js b/chrome/renderer/resources/extension_apitest.js |
index 4b6f939586916aa5182f75c38b87e7f423533bfe..4785fcd3dc052338f5f218b49b2c12ac1e5bd2fa 100644 |
--- a/chrome/renderer/resources/extension_apitest.js |
+++ b/chrome/renderer/resources/extension_apitest.js |
@@ -122,7 +122,41 @@ var chrome = chrome || {}; |
} |
}; |
+ function checkDeepEq(expected, actual) { |
+ for (var p in expected) { |
+ var eq = true; |
+ switch (typeof(expected[p])) { |
+ case 'object': |
+ eq = checkDeepEq(expected[p], actual[p]); |
+ break; |
+ case 'function': |
+ eq = (typeof(actual[p]) != 'undefined' && |
+ expected[p].toString() == actual[p].toString()); |
+ break; |
+ default: |
+ eq = (expected[p] == actual[p] && |
+ typeof(expected[p]) == typeof(actual[p])); |
+ break; |
+ } |
+ if (!eq) |
+ return false; |
+ } |
+ for (var p in actual) { |
+ if (typeof(expected[p]) == 'undefined') |
+ return false; |
+ } |
+ return true; |
+ } |
+ |
chrome.test.assertEq = function(expected, actual) { |
+ if (typeof(expected) == 'object') { |
+ if (!checkDeepEq(expected, actual)) { |
+ chrome.test.fail("API Test Error in " + testName(currentTest) + |
+ "\nActual: " + JSON.stringify(actual) + |
+ "\nExpected: " + JSON.stringify(expected)); |
+ } |
+ return; |
+ } |
if (expected != actual) { |
chrome.test.fail("API Test Error in " + testName(currentTest) + |
"\nActual: " + actual + "\nExpected: " + expected); |