Commit f37873dd authored by Michael Checo's avatar Michael Checo Committed by Commit Bot

Scanning: Add scanning test utils

Bug: 1059779
Test: browser_tests --gtest_filter=ScanningAppBrowserTest.All
Change-Id: I7d03b13cf198d0fd12e61b860ea366a866aace0f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2510531
Commit-Queue: Michael Checo <michaelcheco@google.com>
Reviewed-by: default avatarZentaro Kavanagh <zentaro@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822864}
parent a6af1665
...@@ -11,6 +11,7 @@ import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min ...@@ -11,6 +11,7 @@ import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min
import {setScanServiceForTesting} from 'chrome://scanning/mojo_interface_provider.js'; import {setScanServiceForTesting} from 'chrome://scanning/mojo_interface_provider.js';
import {ScannerArr} from 'chrome://scanning/scanning_app_types.js'; import {ScannerArr} from 'chrome://scanning/scanning_app_types.js';
import {getColorModeString, getPageSizeString, getSourceTypeString, tokenToString} from 'chrome://scanning/scanning_app_util.js'; import {getColorModeString, getPageSizeString, getSourceTypeString, tokenToString} from 'chrome://scanning/scanning_app_util.js';
import * as utils from './scanning_app_test_utils.js';
const ColorMode = { const ColorMode = {
BLACK_AND_WHITE: chromeos.scanning.mojom.ColorMode.kBlackAndWhite, BLACK_AND_WHITE: chromeos.scanning.mojom.ColorMode.kBlackAndWhite,
...@@ -36,45 +37,7 @@ const SourceType = { ...@@ -36,45 +37,7 @@ const SourceType = {
ADF_DUPLEX: chromeos.scanning.mojom.SourceType.kAdfDuplex, ADF_DUPLEX: chromeos.scanning.mojom.SourceType.kAdfDuplex,
}; };
/** const pageSizes = [PageSize.A4, PageSize.Letter, PageSize.Max];
* @param {!mojoBase.mojom.UnguessableToken} id
* @param {!string} displayName
* @return {!chromeos.scanning.mojom.Scanner}
*/
function createScanner(id, displayName) {
let scanner = {
'id': id,
'displayName': strToMojoString16(displayName),
};
return scanner;
}
/**
* @param {number} type
* @param {!string} name
* @return {!chromeos.scanning.mojom.ScanSource}
*/
function createSource(type, name) {
let source = {
'type': type,
'name': name,
};
return source;
}
/**
* Converts a JS string to a mojo_base::mojom::String16 object.
* @param {!string} str
* @return {!object}
*/
function strToMojoString16(str) {
let arr = [];
for (var i = 0; i < str.length; i++) {
arr[i] = str.charCodeAt(i);
}
return {data: arr};
}
class FakeScanService { class FakeScanService {
constructor() { constructor() {
...@@ -227,24 +190,22 @@ suite('ScanningAppTest', () => { ...@@ -227,24 +190,22 @@ suite('ScanningAppTest', () => {
const secondScannerId = {high: 0, low: 2}; const secondScannerId = {high: 0, low: 2};
const secondScannerName = 'Scanner 2'; const secondScannerName = 'Scanner 2';
const expectedScanners = [ const expectedScanners = [
createScanner(firstScannerId, firstScannerName), utils.createScanner(firstScannerId, firstScannerName),
createScanner(secondScannerId, secondScannerName) utils.createScanner(secondScannerId, secondScannerName)
]; ];
const firstCapabilities = { const firstCapabilities = {
sources: [ sources: [
{ utils.createScannerSource(SourceType.FLATBED, 'platen', pageSizes),
type: SourceType.FLATBED, utils.createScannerSource(
name: 'platen', SourceType.ADF_DUPLEX, 'adf duplex', pageSizes),
pageSizes: [PageSize.A4, PageSize.Letter, PageSize.Max]
},
{type: SourceType.ADF_DUPLEX, name: 'adf duplex'}
], ],
colorModes: [ColorMode.BLACK_AND_WHITE, ColorMode.COLOR], colorModes: [ColorMode.BLACK_AND_WHITE, ColorMode.COLOR],
resolutions: [75, 100, 300] resolutions: [75, 100, 300]
}; };
const secondCapabilities = { const secondCapabilities = {
sources: [{type: SourceType.ADF_SIMPLEX, name: 'adf simplex'}], sources: [utils.createScannerSource(
SourceType.ADF_SIMPLEX, 'adf simplex', pageSizes)],
colorModes: [ColorMode.GRAYSCALE], colorModes: [ColorMode.GRAYSCALE],
resolutions: [150, 600] resolutions: [150, 600]
}; };
...@@ -378,8 +339,8 @@ suite('ScannerSelectTest', () => { ...@@ -378,8 +339,8 @@ suite('ScannerSelectTest', () => {
const secondScannerId = {high: 0, low: 2}; const secondScannerId = {high: 0, low: 2};
const secondScannerName = 'Scanner 2'; const secondScannerName = 'Scanner 2';
const scannerArr = [ const scannerArr = [
createScanner(firstScannerId, firstScannerName), utils.createScanner(firstScannerId, firstScannerName),
createScanner(secondScannerId, secondScannerName) utils.createScanner(secondScannerId, secondScannerName)
]; ];
scannerSelect.scanners = scannerArr; scannerSelect.scanners = scannerArr;
scannerSelect.loaded = true; scannerSelect.loaded = true;
...@@ -400,7 +361,7 @@ suite('ScannerSelectTest', () => { ...@@ -400,7 +361,7 @@ suite('ScannerSelectTest', () => {
const select = scannerSelect.$$('select'); const select = scannerSelect.$$('select');
assertTrue(!!select); assertTrue(!!select);
let scannerArr = [createScanner({high: 0, low: 1}, 'Scanner 1')]; let scannerArr = [utils.createScanner({high: 0, low: 1}, 'Scanner 1')];
scannerSelect.scanners = scannerArr; scannerSelect.scanners = scannerArr;
scannerSelect.loaded = true; scannerSelect.loaded = true;
flush(); flush();
...@@ -409,8 +370,8 @@ suite('ScannerSelectTest', () => { ...@@ -409,8 +370,8 @@ suite('ScannerSelectTest', () => {
assertEquals(1, select.length); assertEquals(1, select.length);
assertTrue(select.disabled); assertTrue(select.disabled);
scannerArr = scannerArr = scannerArr.concat(
scannerArr.concat([createScanner({high: 0, low: 2}, 'Scanner 2')]); [utils.createScanner({high: 0, low: 2}, 'Scanner 2')]);
scannerSelect.scanners = scannerArr; scannerSelect.scanners = scannerArr;
flush(); flush();
...@@ -456,8 +417,10 @@ suite('SourceSelectTest', () => { ...@@ -456,8 +417,10 @@ suite('SourceSelectTest', () => {
assertTrue(select.disabled); assertTrue(select.disabled);
assertEquals(0, select.length); assertEquals(0, select.length);
const firstSource = createSource(SourceType.FLATBED, 'platen'); const firstSource =
const secondSource = createSource(SourceType.ADF_SIMPLEX, 'adf simplex'); utils.createScannerSource(SourceType.FLATBED, 'platen', pageSizes);
const secondSource = utils.createScannerSource(
SourceType.ADF_SIMPLEX, 'adf simplex', pageSizes);
const sourceArr = [firstSource, secondSource]; const sourceArr = [firstSource, secondSource];
sourceSelect.sources = sourceArr; sourceSelect.sources = sourceArr;
flush(); flush();
...@@ -479,7 +442,8 @@ suite('SourceSelectTest', () => { ...@@ -479,7 +442,8 @@ suite('SourceSelectTest', () => {
const select = sourceSelect.$$('select'); const select = sourceSelect.$$('select');
assertTrue(!!select); assertTrue(!!select);
let sourceArr = [createSource(SourceType.FLATBED, 'flatbed')]; let sourceArr =
[utils.createScannerSource(SourceType.FLATBED, 'flatbed', pageSizes)];
sourceSelect.sources = sourceArr; sourceSelect.sources = sourceArr;
flush(); flush();
...@@ -487,8 +451,8 @@ suite('SourceSelectTest', () => { ...@@ -487,8 +451,8 @@ suite('SourceSelectTest', () => {
assertEquals(1, select.length); assertEquals(1, select.length);
assertTrue(select.disabled); assertTrue(select.disabled);
sourceArr = sourceArr = sourceArr.concat([utils.createScannerSource(
sourceArr.concat([createSource(SourceType.ADF_DUPLEX, 'adf duplex')]); SourceType.ADF_DUPLEX, 'adf duplex', pageSizes)]);
sourceSelect.sources = sourceArr; sourceSelect.sources = sourceArr;
flush(); flush();
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @param {!mojoBase.mojom.UnguessableToken} id
* @param {string} displayName
* @return {!chromeos.scanning.mojom.Scanner}
*/
export function createScanner(id, displayName) {
return {id, 'displayName': strToMojoString16(displayName)};
}
/**
* @param {number} type
* @param {string} name
* @param {!Array<chromeos.scanning.mojom.PageSize>} pageSizes
* @return {!chromeos.scanning.mojom.ScanSource}
*/
export function createScannerSource(type, name, pageSizes) {
return {type, name, pageSizes};
}
/**
* Converts a JS string to a mojo_base::mojom::String16 object.
* @param {string} str
* @return {!mojoBase.mojom.String16}
*/
export function strToMojoString16(str) {
let arr = [];
for (var i = 0; i < str.length; i++) {
arr[i] = str.charCodeAt(i);
}
return {data: arr};
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment