123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- // Copyright 2014 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.
- import {reportPromise} from 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/common/js/test_error_reporting.js';
- import {assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
- import {ImageLoaderClient} from './image_loader_client.js';
- import {LoadImageRequest, LoadImageResponse, LoadImageResponseStatus} from './load_image_request.js';
- /** @suppress {const|checkTypes} */
- export function setUp() {
- chrome.metricsPrivate = {
- MetricTypeType:
- {HISTOGRAM_LOG: 'histogram-log', HISTOGRAM_LINEAR: 'histogram-linear'},
- recordPercentage: function() {},
- recordValue: function() {},
- };
- chrome.i18n = {
- getMessage: function() {},
- };
- }
- /**
- * Lets the client to load URL and returns the local cache (not caches in the
- * image loader extension) is used or not.
- *
- * @param {ImageLoaderClient} client
- * @param {string} url URL
- * @param {boolean} cache Whether to request caching on the request.
- * @return {Promise<boolean>} True if the local cache is used.
- */
- function loadAndCheckCacheUsed(client, url, cache) {
- let cacheUsed = true;
- /** @suppress {accessControls} */
- ImageLoaderClient.sendMessage_ = function(message, callback) {
- cacheUsed = false;
- if (callback) {
- callback(new LoadImageResponse(
- LoadImageResponseStatus.SUCCESS, message.taskId || -1,
- {width: 100, height: 100, ifd: null, data: 'ImageData'}));
- }
- };
- const request = LoadImageRequest.createForUrl(url);
- request.cache = cache;
- return new Promise(function(fulfill) {
- client.load(request, function() {
- fulfill(cacheUsed);
- });
- });
- }
- export function testCache(callback) {
- const client = new ImageLoaderClient();
- reportPromise(
- loadAndCheckCacheUsed(client, 'http://example.com/image.jpg', true)
- .then(function(cacheUsed) {
- assertFalse(cacheUsed);
- return loadAndCheckCacheUsed(
- client, 'http://example.com/image.jpg', true);
- })
- .then(function(cacheUsed) {
- assertTrue(cacheUsed);
- }),
- callback);
- }
- export function testNoCache(callback) {
- const client = new ImageLoaderClient();
- reportPromise(
- loadAndCheckCacheUsed(client, 'http://example.com/image.jpg', false)
- .then(function(cacheUsed) {
- assertFalse(cacheUsed);
- return loadAndCheckCacheUsed(
- client, 'http://example.com/image.jpg', false);
- })
- .then(function(cacheUsed) {
- assertFalse(cacheUsed);
- }),
- callback);
- }
- export function testDataURLCache(callback) {
- const client = new ImageLoaderClient();
- reportPromise(
- loadAndCheckCacheUsed(client, 'data:URI', true)
- .then(function(cacheUsed) {
- assertFalse(cacheUsed);
- return loadAndCheckCacheUsed(client, 'data:URI', true);
- })
- .then(function(cacheUsed) {
- assertFalse(cacheUsed);
- }),
- callback);
- }
|