| Index: chrome/browser/resources/chromeos/chromevox/braille/pan_strategy_test.unitjs
|
| diff --git a/chrome/browser/resources/chromeos/chromevox/braille/pan_strategy_test.unitjs b/chrome/browser/resources/chromeos/chromevox/braille/pan_strategy_test.unitjs
|
| index 3c7464888eaf524ec0be0f0a618a6d2b4fd71341..765e8a25a150c98147507e731c31b471773bdce3 100644
|
| --- a/chrome/browser/resources/chromeos/chromevox/braille/pan_strategy_test.unitjs
|
| +++ b/chrome/browser/resources/chromeos/chromevox/braille/pan_strategy_test.unitjs
|
| @@ -18,104 +18,253 @@ CvoxPanStrategyUnitTest.prototype = {
|
| closureModuleDeps: [
|
| 'cvox.PanStrategy',
|
| ],
|
| +
|
| +
|
| };
|
|
|
| /**
|
| - * @param {string} content String representing the content with spaces
|
| - * representing blank cells and any other character representing
|
| - * arbitrary non-blank cells.
|
| + * Creates an array buffer based off of the passed in content.
|
| + * Note: Input should be a string of numbers, spaces will turn to 0's.
|
| + * @param {string} content String representing the content.
|
| */
|
| function createArrayBuffer(content) {
|
| var result = new ArrayBuffer(content.length);
|
| var view = new Uint8Array(result);
|
| for (var i = 0; i < content.length; ++i) {
|
| - view[i] = (content[i] != ' ' ? 1 : 0);
|
| + view[i] = content[i];
|
| }
|
| return result;
|
| }
|
|
|
| TEST_F('CvoxPanStrategyUnitTest', 'FixedPanning', function() {
|
| - var panner = new cvox.FixedPanStrategy();
|
| + var panner = new cvox.PanStrategy();
|
| + panner.setPanStrategy(false);
|
|
|
| - panner.setDisplaySize(0);
|
| - panner.setContent(createArrayBuffer(''), 0);
|
| - assertEqualsJSON({start: 0, end: 0}, panner.viewPort);
|
| + panner.setDisplaySize(0, 0);
|
| + panner.setContent('', createArrayBuffer(''), [], 0);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| assertFalse(panner.previous());
|
| assertFalse(panner.next());
|
|
|
| // 25 cells with a blank cell in the first 10 characters.
|
| - var content = createArrayBuffer('01234567 9012345678901234');
|
| - panner.setContent(content, 0);
|
| - assertEqualsJSON({start: 0, end: 0}, panner.viewPort);
|
| + var translatedContent = createArrayBuffer('01234567 9012345678901234');
|
| + panner.setContent('unused', translatedContent, [], 0);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| assertFalse(panner.next());
|
| assertFalse(panner.previous());
|
|
|
| - panner.setDisplaySize(10);
|
| - assertEqualsJSON({start: 0, end: 10}, panner.viewPort);
|
| + panner.setDisplaySize(1, 10);
|
| + assertEquals(panner.displaySize.columns, 10);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| assertTrue(panner.next());
|
| - assertEqualsJSON({start: 10, end: 20}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 1, lastRow: 1}, panner.viewPort);
|
| assertTrue(panner.next());
|
| - assertEqualsJSON({start: 20, end: 25}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| assertFalse(panner.next());
|
| - assertEqualsJSON({start: 20, end: 25}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 10, end: 20}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 1, lastRow: 1}, panner.viewPort);
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 0, end: 10}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
|
|
| - panner.setContent(content, 19);
|
| - assertEqualsJSON({start: 10, end: 20}, panner.viewPort);
|
| + panner.setContent('a', translatedContent, [], 19);
|
| + assertEqualsJSON({firstRow: 1, lastRow: 1}, panner.viewPort);
|
|
|
| - panner.setContent(content, 20);
|
| - assertEqualsJSON({start: 20, end: 25}, panner.viewPort);
|
| + panner.setContent('a', translatedContent, [], 20);
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
|
|
| - panner.setDisplaySize(8);
|
| - assertEqualsJSON({start: 16, end: 24}, panner.viewPort);
|
| + panner.setDisplaySize(1, 8);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
|
|
| - panner.viewPort_ = {start: 2, end: 10};
|
| + // Test Multi-line Panning.
|
| + panner.setDisplaySize(2, 10);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 1}, panner.viewPort);
|
| + assertTrue(panner.next());
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| + assertFalse(panner.next());
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 0, end: 8}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 1}, panner.viewPort);
|
| + assertFalse(panner.previous());
|
| + assertEqualsJSON({firstRow: 0, lastRow: 1}, panner.viewPort);
|
| });
|
|
|
| -TEST_F('CvoxPanStrategyUnitTest', 'WrappedPanning', function() {
|
| - var panner = new cvox.WrappingPanStrategy();
|
| +TEST_F('CvoxPanStrategyUnitTest', 'WrappedPanningSingleLine', function() {
|
| + var panner = new cvox.PanStrategy();
|
| + panner.setPanStrategy(true);
|
|
|
| // 30 cells with blank cells at positions 8, 22 and 26.
|
| - var content = createArrayBuffer('01234567 9012345678901 345 789');
|
| - panner.setContent(content, 0);
|
| - assertEqualsJSON({start: 0, end: 0}, panner.viewPort);
|
| + var content = createArrayBuffer('11234567 9112345678911 345 789');
|
| + panner.setContent('a', content, [], 0);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| assertFalse(panner.next());
|
| assertFalse(panner.previous());
|
|
|
| - panner.setDisplaySize(10);
|
| - assertEqualsJSON({start: 0, end: 9}, panner.viewPort);
|
| + panner.setDisplaySize(1, 10);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('11234567 '),
|
| + panner.getCurrentBrailleViewportContents());
|
| assertTrue(panner.next());
|
| - assertEqualsJSON({start: 9, end: 19}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 1, lastRow: 1}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('9112345678'),
|
| + panner.getCurrentBrailleViewportContents());
|
| assertTrue(panner.next());
|
| - assertEqualsJSON({start: 19, end: 27}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('911 345 '),
|
| + panner.getCurrentBrailleViewportContents());
|
| assertTrue(panner.next());
|
| - assertEqualsJSON({start: 27, end: 30}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 3, lastRow: 3}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('789'),
|
| + panner.getCurrentBrailleViewportContents());
|
| assertFalse(panner.next());
|
| - assertEqualsJSON({start: 27, end: 30}, panner.viewPort);
|
| - assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 23, end: 27}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 3, lastRow: 3}, panner.viewPort);
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 13, end: 23}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 9, end: 13}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 1, lastRow: 1}, panner.viewPort);
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 0, end: 9}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| + assertFalse(panner.previous());
|
| +
|
| + panner.setContent('a', content, [], 21);
|
| + assertEqualsJSON({firstRow: 2, lastRow: 2}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('911 345 '),
|
| + panner.getCurrentBrailleViewportContents());
|
|
|
| - panner.setContent(content, 21);
|
| - assertEqualsJSON({start: 19, end: 27}, panner.viewPort);
|
| + panner.setContent('a', content, [], 30);
|
| + assertEqualsJSON({firstRow: 3, lastRow: 3}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('789'),
|
| + panner.getCurrentBrailleViewportContents());
|
|
|
| - panner.setContent(content, 30);
|
| - assertEqualsJSON({start: 27, end: 30}, panner.viewPort);
|
| + panner.setDisplaySize(1, 8);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('11234567'),
|
| + panner.getCurrentBrailleViewportContents());
|
| +});
|
| +
|
| +TEST_F('CvoxPanStrategyUnitTest', 'WrappedPanningMultiline', function() {
|
| + var panner = new cvox.PanStrategy();
|
| + panner.setPanStrategy(true);
|
|
|
| - panner.setDisplaySize(8);
|
| - assertEqualsJSON({start: 23, end: 30}, panner.viewPort);
|
| + // 30 cells with blank cells at positions 8, 22 and 26.
|
| + var content = createArrayBuffer('11234567 9112345678911 345 789');
|
| + panner.setContent('a', content, [], 0);
|
|
|
| - panner.viewPort_ = {start: 2, end: 10};
|
| + panner.setDisplaySize(2, 10);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 1}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('11234567 9112345678'),
|
| + panner.getCurrentBrailleViewportContents());
|
| + assertTrue(panner.next());
|
| + assertEqualsJSON({firstRow: 2, lastRow: 3}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('911 345 789'),
|
| + panner.getCurrentBrailleViewportContents());
|
| + assertFalse(panner.next());
|
| + assertEqualsJSON({firstRow: 2, lastRow: 3}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('911 345 789'),
|
| + panner.getCurrentBrailleViewportContents());
|
| assertTrue(panner.previous());
|
| - assertEqualsJSON({start: 0, end: 8}, panner.viewPort);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 1}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('11234567 9112345678'),
|
| + panner.getCurrentBrailleViewportContents());
|
| + assertFalse(panner.previous());
|
| + assertEqualsJSON({firstRow: 0, lastRow: 1}, panner.viewPort);
|
| + assertArrayBuffersEquals(createArrayBuffer('11234567 9112345678'),
|
| + panner.getCurrentBrailleViewportContents());
|
| +});
|
| +
|
| +TEST_F('CvoxPanStrategyUnitTest', 'FixedSetContent', function() {
|
| + var panner = new cvox.PanStrategy();
|
| + panner.setPanStrategy(false);
|
| +
|
| + var textContent = "ABCDE FGHI"
|
| + var translatedContent = createArrayBuffer('11234 6789');
|
| + var mapping = [0,1,2,3,4,5,6,7,8,9];
|
| + panner.setDisplaySize(1, 5);
|
| + panner.setContent(textContent, translatedContent,
|
| + mapping, 0);
|
| + var expectedBufferValue = translatedContent;
|
| + assertArrayBuffersEquals(expectedBufferValue, panner.fixedBuffer_);
|
| + var expectedMappingValue = mapping;
|
| + assertArraysEquals(expectedMappingValue, panner.brailleToText);
|
| +});
|
| +
|
| +TEST_F('CvoxPanStrategyUnitTest', 'WrappedSetContent', function() {
|
| + var panner = new cvox.PanStrategy();
|
| + panner.setPanStrategy(true);
|
| +
|
| + // When first word is bigger than column size. (Don't wrap word)
|
| + var textContent = "ABCDE"
|
| + var translatedContent = createArrayBuffer('11234');
|
| + var mapping = [0,1,2,3,4];
|
| + panner.setDisplaySize(1, 4);
|
| + panner.setContent(textContent, translatedContent,
|
| + mapping, 0);
|
| + var expectedBufferValue = translatedContent;
|
| + assertArrayBuffersEquals(expectedBufferValue, panner.wrappedBuffer_);
|
| + var expectedMappingValue = mapping;
|
| + assertArraysEquals(expectedMappingValue, panner.brailleToText);
|
| +
|
| + // When first word is equal to column size.
|
| + // (We expect space to be removed on next line)
|
| + textContent = "ABCDE FGHI"
|
| + translatedContent = createArrayBuffer('11234 6789');
|
| + var mapping = [0,1,2,3,4,5,6,7,8,9];
|
| + panner.setDisplaySize(1, 5);
|
| + panner.setContent(textContent, translatedContent,
|
| + mapping, 0);
|
| + expectedBufferValue = createArrayBuffer('112346789');
|
| + assertArrayBuffersEquals(expectedBufferValue, panner.wrappedBuffer_);
|
| + expectedMappingValue = [0,1,2,3,4,6,7,8,9];
|
| + assertArraysEquals(expectedMappingValue, panner.brailleToText);
|
| +
|
| + // When first word is equal to column size + 1. (Space stays)
|
| + panner.setDisplaySize(1, 6);
|
| + expectedBufferValue = createArrayBuffer('11234 6789');
|
| + assertArrayBuffersEquals(expectedBufferValue, panner.wrappedBuffer_);
|
| + expectedMappingValue = mapping;
|
| + assertArraysEquals(expectedMappingValue, panner.brailleToText);
|
| +
|
| + // When first word is smaller than column size but second word is too big
|
| + // to fit the same line. (Pad that line, move second word to next line)
|
| + panner.setDisplaySize(1, 7);
|
| + expectedBufferValue = createArrayBuffer('11234 6789');
|
| + assertArrayBuffersEquals(expectedBufferValue, panner.wrappedBuffer_);
|
| + expectedMappingValue = [0,1,2,3,4,5,5,6,7,8,9];
|
| + assertArraysEquals(expectedMappingValue, panner.brailleToText);
|
| +
|
| + // Test all excess spaces are removed.
|
| + panner.setDisplaySize(1, 6);
|
| + textContent = "ABCDEF GHI"
|
| + translatedContent = createArrayBuffer('112345 789');
|
| + mapping = [0,1,2,3,4,5,6,7,7,7,7,7,8,9,10];
|
| + panner.setContent(textContent, translatedContent,
|
| + mapping, 0);
|
| + expectedBufferValue = createArrayBuffer('112345789');
|
| + assertArrayBuffersEquals(expectedBufferValue, panner.wrappedBuffer_);
|
| + expectedMappingValue = [0,1,2,3,4,5,7,8,9];
|
| + assertArraysEquals(expectedMappingValue, panner.brailleToText);
|
| +});
|
| +
|
| +TEST_F('CvoxPanStrategyUnitTest', 'getCurrentTextViewportContents', function() {
|
| + var panner = new cvox.PanStrategy();
|
| + panner.setPanStrategy(true);
|
| +
|
| + // 30 cells with blank cells at positions 8, 22 and 26.
|
| + var content = createArrayBuffer('11234567 9112345678911 345 789');
|
| + var mapping = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
|
| + 21,22,23,24,25,26,27,28,29];
|
| + panner.setContent('11234567 9112345678911 345 789', content, mapping, 0);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| + assertFalse(panner.next());
|
| + assertFalse(panner.previous());
|
| +
|
| + panner.setDisplaySize(1, 10);
|
| + assertEqualsJSON({firstRow: 0, lastRow: 0}, panner.viewPort);
|
| + assertEquals('11234567 ', panner.getCurrentTextViewportContents());
|
| + panner.next();
|
| + assertEquals('9112345678', panner.getCurrentTextViewportContents());
|
| + panner.next();
|
| + assertEquals('911 345 ', panner.getCurrentTextViewportContents());
|
| + panner.next();
|
| + assertEquals('789', panner.getCurrentTextViewportContents());
|
| });
|
|
|