/** * @license * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import '../../../test/common-test-setup-karma.js'; import './gr-js-api-interface.js'; import {getPluginNameFromUrl} from './gr-api-utils.js'; const PRELOADED_PROTOCOL = 'preloaded:'; suite('gr-api-utils tests', () => { suite('test getPluginNameFromUrl', () => { test('with empty string', () => { assert.equal(getPluginNameFromUrl(''), null); }); test('with invalid url', () => { assert.equal(getPluginNameFromUrl('test'), null); }); test('with random invalid url', () => { assert.equal(getPluginNameFromUrl('http://example.com'), null); assert.equal( getPluginNameFromUrl('http://example.com/static/a.html'), null ); }); test('with valid urls', () => { assert.equal( getPluginNameFromUrl('http://example.com/plugins/a.html'), 'a' ); assert.equal( getPluginNameFromUrl('http://example.com/plugins/a/static/t.html'), 'a' ); }); test('with preloaded urls', () => { assert.equal(getPluginNameFromUrl(`${PRELOADED_PROTOCOL}a`), 'a'); }); test('with gerrit-theme override', () => { assert.equal( getPluginNameFromUrl('http://example.com/static/gerrit-theme.html'), 'gerrit-theme' ); }); test('with ASSETS_PATH', () => { window.ASSETS_PATH = 'http://cdn.com/2'; assert.equal( getPluginNameFromUrl(`${window.ASSETS_PATH}/plugins/a.html`), 'a' ); window.ASSETS_PATH = undefined; }); }); });