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

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

Issue 2954413003: Support rich line output in both speech and braille (Closed)
Patch Set: Fix browser test Created 3 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
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 00a8c99fedcd17bd8bf582ca39db51a9c925ec84..0b772a516881d54e3ceb7583df7b315faa198d9b 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
@@ -19,6 +19,7 @@ CvoxExpandingBrailleTranslatorUnitTest.prototype = {
/** @override */
closureModuleDeps: [
'Spannable',
+ 'cvox.BrailleTextStyleSpan',
'cvox.ExpandingBrailleTranslator',
'cvox.LibLouis',
'cvox.ValueSelectionSpan',
@@ -36,19 +37,24 @@ CvoxExpandingBrailleTranslatorUnitTest.prototype = {
* @constructor
* @extends {cvox.LibLouis.Translator}
*/
-function FakeTranslator(resultChar) {
+function FakeTranslator(resultChar, opt_styleMap) {
/** @private {string} */
this.resultChar_ = resultChar;
+ /** @private {!Object} */
+ this.styleMap_ = opt_styleMap || {};
}
FakeTranslator.prototype = {
/** @Override */
- translate: function(text, callback) {
+ translate: function(text, formTypeMap, callback) {
var result = new Uint8Array(text.length);
var textToBraille = [];
var brailleToText = [];
for (var i = 0; i < text.length; ++i) {
- result[i] = this.resultChar_.charCodeAt(0);
+ var formType = this.styleMap_[formTypeMap[i]];
+ if (formType)
+ formType = formType.charCodeAt(0);
+ result[i] = formType || this.resultChar_.charCodeAt(0);
textToBraille.push(i);
brailleToText.push(i);
}
@@ -79,7 +85,7 @@ TEST_F('CvoxExpandingBrailleTranslatorUnitTest', 'TranslationError',
var contractedTranslator = new FakeTranslator('c');
// Translator that always results in an error.
var uncontractedTranslator = {
- translate: function(text, callback) {
+ translate: function(text, formTypeMap, callback) {
callback(null, null, null);
}
};
@@ -141,7 +147,7 @@ function doTranslationTest(name, contracted, valueExpansion, text,
}
if (extraCellsSpan)
expectedBrailleToText.splice(extraCellsSpanPos, 0, extraCellsSpanPos);
-
+
expandingTranslator.translate(
text, valueExpansion, function(cells, textToBraille, brailleToText) {
assertArrayBufferMatches(expectedOutput, cells, name);
@@ -226,7 +232,7 @@ function runTranslationTestVariants(testCase, contracted, valueExpansion,
* selection is added if undefined.
* @param {=opt_selectionEnd} Selection end if selection is not a caret.
*/
-function createText(text, opt_selectionStart, opt_selectionEnd) {
+function createText(text, opt_selectionStart, opt_selectionEnd, opt_style) {
var result = new Spannable(text);
result.setSpan(new cvox.ValueSpan, 0, text.length);
@@ -236,6 +242,13 @@ function createText(text, opt_selectionStart, opt_selectionEnd) {
opt_selectionStart,
goog.isDef(opt_selectionEnd) ? opt_selectionEnd : opt_selectionStart);
}
+
+ if (goog.isDef(opt_style)) {
+ result.setSpan(
+ new cvox.BrailleTextStyleSpan(opt_style.formType),
+ opt_style.start,
+ opt_style.end);
+ }
return result;
}
@@ -299,3 +312,20 @@ TEST_F('CvoxExpandingBrailleTranslatorUnitTest', 'successfulTranslations',
2 * (TESTDATA.length * 4 + TESTDATA_WITH_SELECTION.length);
assertEquals(totalExpectedTranslationTests, totalRunTranslationTests);
});
+
+TEST_F('CvoxExpandingBrailleTranslatorUnitTest', 'StyleTranslations',
+ function() {
+ var formTypeMap = {};
+ formTypeMap[cvox.LibLouis.FormType.BOLD] = 'b';
+ formTypeMap[cvox.LibLouis.FormType.ITALIC] = 'i';
+ formTypeMap[cvox.LibLouis.FormType.UNDERLINE] = 'u';
+ var translator = new cvox.ExpandingBrailleTranslator(
+ new FakeTranslator('c', formTypeMap),
+ new FakeTranslator('u'));
+ translator.translate(createText('a test of text', undefined, undefined, {
+ start: 2, end: 6, formType: cvox.LibLouis.FormType.BOLD}),
+ cvox.ExpandingBrailleTranslator.ExpansionType.NONE,
+ function(cells) {
+ assertArrayBufferMatches('ccbbbbcccccccc', cells);
+ });
+});

Powered by Google App Engine
This is Rietveld 408576698