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

Unified Diff: chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js

Issue 298653011: More ChromeVox tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix style violations Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/host/testing/tts.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
diff --git a/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js b/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
index 7030b1969578c7c836a256645258d5d4e5288fca..7c0b3ac5eb746a5f0693046663fafabf22fcf53e 100644
--- a/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
+++ b/chrome/browser/resources/chromeos/chromevox/testing/chromevox_unittest_base.js
@@ -12,6 +12,72 @@ function $(id) {
}
/**
+ * Asserts that a given argument's value is undefined.
+ * @param {object} a The argument to check.
+ */
+function assertUndefined(a) {
+ if (a !== undefined) {
+ throw new Error('Assertion failed: expected undefined');
+ }
+}
+
+/**
+ * Asserts that a given function call raises an exception.
+ * @param {string} error The name of the exception we expect to throw.
+ * @param {Function} fn The function to call.
+ * @return {boolean} True if it throws the exception.
+ */
+function assertException(error, fn) {
+ try {
+ fn();
+ } catch (e) {
+ if (error && e.name != error) {
+ throw new Error('Expected to throw ' + error + ' but threw ' + e.name);
+ }
+
+ return true;
+ }
+
+ throw new Error('Expected to throw exception');
+}
+
+/**
+ * Asserts that two arrays of strings are equal.
+ * @param {Array.<string>} array1 The expected array.
+ * @param {Array.<string>} array2 The test array.
+ */
+function assertEqualStringArrays(array1, array2) {
+ var same = true;
+ if (array1.length != array2.length) {
+ same = false;
+ }
+ for (var i = 0; i < Math.min(array1.length, array2.length); i++) {
+ if (array1[i].trim() != array2[i].trim()) {
+ same = false;
+ }
+ }
+ if (!same) {
+ throw new Error('Expected ' + JSON.stringify(array1) +
+ ', got ' + JSON.stringify(array2));
+ }
+}
+
+/**
+ * Asserts that two objects have the same JSON serialization.
+ * @param {Object} obj1 The expected object.
+ * @param {Object} obj2 The actual object.
+ */
+function assertEqualsJSON(obj1, obj2) {
+ if (!eqJSON(obj1, obj2)) {
+ throw new Error('Expected ' + JSON.stringify(obj1) +
+ ', got ' + JSON.stringify(obj2));
+ }
+}
+
+assertSame = assertEquals;
+assertNotSame = assertNotEquals;
+
+/**
* Base test fixture for ChromeVox unit tests.
*
* Note that while conceptually these are unit tests, these tests need
@@ -30,20 +96,39 @@ ChromeVoxUnitTestBase.prototype = {
browsePreload: DUMMY_URL,
/**
+ * @override
+ * It doesn't make sense to run the accessibility audit on these tests,
+ * since many of them are deliberately testing inaccessible html.
+ */
+ runAccessibilityChecks: false,
+
+ /**
* Loads some inlined html into the current document, replacing
- * whatever was there previously. To use it, call it with the html
- * inside an inline comment, like this:
+ * whatever was there previously.
+ * @param {string} html The html to load as a string.
+ */
+ loadHtml: function(html) {
+ document.open();
+ document.write(html);
+ document.close();
+ },
+
+ /**
+ * Loads some inlined html into the current document, replacing
+ * whatever was there previously. This version takes the html
+ * encoded as a comment inside a function, so you can use it like this:
*
* this.loadDoc(function() {/*!
* <p>Html goes here</p>
* * /});
+ *
+ * @param {Function} commentEncodedHtml The html to load, embedded as a
+ * comment inside an anonymous function - see example, above.
*/
loadDoc: function(commentEncodedHtml) {
var html = commentEncodedHtml.toString().
replace(/^[^\/]+\/\*!?/, '').
replace(/\*\/[^\/]+$/, '');
- document.open();
- document.write(html);
- document.close();
+ this.loadHtml(html);
}
};
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/host/testing/tts.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698