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

Unified Diff: chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs

Issue 1039703002: Make contracted braille input work in more contexts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@docs2
Patch Set: Rebase Created 5 years, 7 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
Index: chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
diff --git a/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs b/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
index bd598dd6e272ea382d1df8039e19f66fc60ddfe0..8b4f313789182fd479d53a612ef94d5fc5366fb4 100644
--- a/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
+++ b/chrome/browser/resources/chromeos/chromevox/braille/expanding_braille_translator_test.unitjs
@@ -116,28 +116,42 @@ var totalRunTranslationTests = 0;
*/
function doTranslationTest(name, contracted, valueExpansion, text,
expectedOutput) {
- totalRunTranslationTests++;
- var uncontractedTranslator = new FakeTranslator('u');
- var expandingTranslator;
- if (contracted) {
- var contractedTranslator = new FakeTranslator('c');
- expandingTranslator = new cvox.ExpandingBrailleTranslator(
- contractedTranslator, uncontractedTranslator);
- } else {
- expandingTranslator = new cvox.ExpandingBrailleTranslator(
- uncontractedTranslator);
- }
- var expectedMapping = [];
- for (var i = 0; i < expectedOutput.length; ++i) {
- expectedMapping[i] = i;
+ try {
+ totalRunTranslationTests++;
+ var uncontractedTranslator = new FakeTranslator('u');
+ var expandingTranslator;
+ if (contracted) {
+ var contractedTranslator = new FakeTranslator('c');
+ expandingTranslator = new cvox.ExpandingBrailleTranslator(
+ contractedTranslator, uncontractedTranslator);
+ } else {
+ expandingTranslator = new cvox.ExpandingBrailleTranslator(
+ uncontractedTranslator);
+ }
+ var extraCellsSpan = text.getSpanInstanceOf(cvox.ExtraCellsSpan);
+ if (extraCellsSpan)
+ var extraCellsSpanPos = text.getSpanStart(extraCellsSpan);
+ var expectedTextToBraille = [];
+ var expectedBrailleToText = [];
+ for (var i = 0, pos = 0; i < text.getLength(); ++i, ++pos) {
+ if (i === extraCellsSpanPos)
+ ++pos;
+ expectedTextToBraille.push(pos);
+ expectedBrailleToText.push(i);
+ }
+ if (extraCellsSpan)
+ expectedBrailleToText.splice(extraCellsSpanPos, 0, extraCellsSpanPos);
+
+ expandingTranslator.translate(
+ text, valueExpansion, function(cells, textToBraille, brailleToText) {
+ assertArrayBufferMatches(expectedOutput, cells, name);
+ assertEqualsJSON(expectedTextToBraille, textToBraille, name);
+ assertEqualsJSON(expectedBrailleToText, brailleToText, name);
+ });
+ } catch (e) {
+ console.error('Subtest ' + name + ' failed.');
+ throw e;
}
-
- expandingTranslator.translate(
- text, valueExpansion, function(cells, textToBraille, brailleToText) {
- assertArrayBufferMatches(expectedOutput, cells, name);
- assertEqualsJSON(expectedMapping, textToBraille, name);
- assertEqualsJSON(expectedMapping, brailleToText, name);
- });
};
/**
@@ -149,16 +163,27 @@ function doTranslationTest(name, contracted, valueExpansion, text,
* and contracted translators.
* @param {cvox.ExpandingBrailleTranslation.ExpansionType} valueExpansion
* What kind of value expansion to apply.
- * @param {cvox.Spannable} text Input text.
- * @param {string=} opt_expectedContractedOutput Expected output (see
- * {@code TESTDATA}).
+ * @param {boolean} withExtraCells Whether to insert an extra cells span
+ * right before the selection in the input.
*/
-function runTranslationTestVariants(testCase, contracted, valueExpansion) {
+function runTranslationTestVariants(testCase, contracted, valueExpansion,
+ withExtraCells) {
var expType = cvox.ExpandingBrailleTranslator.ExpansionType;
// Construct the full name.
var fullName = contracted ? 'Contracted_' : 'Uncontracted_';
fullName += 'Expansion' + valueExpansion + '_';
+ if (withExtraCells)
+ fullName += 'ExtraCells_';
fullName += testCase.name;
+ var input = testCase.input;
+ if (withExtraCells) {
+ input = input.substring(0); // Shallow copy.
+ var selectionStart = input.getSpanStart(
+ input.getSpanInstanceOf(cvox.ValueSelectionSpan));
+ var extraCellsSpan = new cvox.ExtraCellsSpan();
+ extraCellsSpan.cells = new Uint8Array(['e'.charCodeAt(0)]).buffer;
+ input.setSpan(extraCellsSpan, selectionStart, selectionStart);
+ }
// The expected output depends on the contraction mode and value expansion.
var outputChar = contracted ? 'c' : 'u';
var expectedOutput;
@@ -170,14 +195,18 @@ function runTranslationTestVariants(testCase, contracted, valueExpansion) {
expectedOutput =
new Array(testCase.input.getLength() + 1).join(outputChar);
}
- doTranslationTest(fullName, contracted, valueExpansion, testCase.input,
+ if (withExtraCells) {
+ expectedOutput = expectedOutput.substring(0, selectionStart) + 'e' +
+ expectedOutput.substring(selectionStart);
+ }
+ doTranslationTest(fullName, contracted, valueExpansion, input,
expectedOutput);
// Run another test, with the value surrounded by some text.
var surroundedText = new cvox.Spannable('Name: ');
var surroundedExpectedOutput =
new Array('Name: '.length + 1).join(outputChar);
- surroundedText.append(testCase.input);
+ surroundedText.append(input);
surroundedExpectedOutput += expectedOutput;
if (testCase.input.getLength() > 0) {
surroundedText.append(' ');
@@ -186,7 +215,7 @@ function runTranslationTestVariants(testCase, contracted, valueExpansion) {
surroundedText.append('edtxt');
surroundedExpectedOutput +=
new Array('edtxt'.length + 1).join(outputChar);
- doTranslationTest(fullName + '_Surrounded', contracted, valueExpansion,
+ doTranslationTest(fullName + '_Surrounded', contracted, valueExpansion,
surroundedText, surroundedExpectedOutput);
}
@@ -250,15 +279,23 @@ TEST_F('CvoxExpandingBrailleTranslatorUnitTest', 'successfulTranslations',
input: createText(TEXT, 2, 9),
contractedOutput: 'uuuuuucuuuuuu' }
];
+ var TESTDATA_WITH_SELECTION = TESTDATA.filter(function(testCase) {
+ return testCase.input.getSpanInstanceOf(cvox.ValueSelectionSpan);
+ });
var expType = cvox.ExpandingBrailleTranslator.ExpansionType;
for (var i = 0, testCase; testCase = TESTDATA[i]; ++i) {
- runTranslationTestVariants(testCase, false, expType.SELECTION);
- runTranslationTestVariants(testCase, true, expType.NONE);
- runTranslationTestVariants(testCase, true, expType.SELECTION);
- runTranslationTestVariants(testCase, true, expType.ALL);
+ runTranslationTestVariants(testCase, false, expType.SELECTION, false);
+ runTranslationTestVariants(testCase, true, expType.NONE, false);
+ runTranslationTestVariants(testCase, true, expType.SELECTION, false);
+ runTranslationTestVariants(testCase, true, expType.ALL, false);
}
+ for (var i = 0, testCase; testCase = TESTDATA_WITH_SELECTION[i]; ++i)
+ runTranslationTestVariants(testCase, true, expType.SELECTION, true);
+
// Make sure that the logic above runs the tests, adjust when adding more
- // tests.
- assertEquals(64, totalRunTranslationTests);
+ // test variants.
+ var totalExpectedTranslationTests =
+ 2 * (TESTDATA.length * 4 + TESTDATA_WITH_SELECTION.length);
+ assertEquals(totalExpectedTranslationTests, totalRunTranslationTests);
});

Powered by Google App Engine
This is Rietveld 408576698