
These tags are preserved by the Closure compiler and vulcanize in order to serve the license notices embedded in the outputs. In a standalone Gerrit server, these license are also covered in the LICENSES.txt served with the documentation. When serving PG assets from a CDN, it's less obvious what the corresponding LICENSES.txt file is, since the CDN is not directly linked to a running Gerrit server. Safer to embed the licenses in the assets themselves. Change-Id: Id1add1451fad1baa7916882a6bda02c326ccc988
133 lines
3.9 KiB
HTML
133 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
@license
|
|
Copyright (C) 2017 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.
|
|
-->
|
|
|
|
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
|
|
<title>gr-plugin-action-context</title>
|
|
|
|
<script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
|
|
<script src="../../../bower_components/web-component-tester/browser.js"></script>
|
|
<link rel="import" href="../../../test/common-test-setup.html"/>
|
|
<link rel="import" href="gr-js-api-interface.html"/>
|
|
|
|
<script>void(0);</script>
|
|
|
|
<test-fixture id="basic">
|
|
<template>
|
|
<div></div>
|
|
</template>
|
|
</test-fixture>
|
|
|
|
<script>
|
|
suite('gr-plugin-action-context tests', () => {
|
|
let instance;
|
|
let sandbox;
|
|
let plugin;
|
|
|
|
setup(() => {
|
|
sandbox = sinon.sandbox.create();
|
|
Gerrit._setPluginsCount(1);
|
|
Gerrit.install(p => { plugin = p; }, '0.1',
|
|
'http://test.com/plugins/testplugin/static/test.js');
|
|
instance = new GrPluginActionContext(plugin);
|
|
});
|
|
|
|
teardown(() => {
|
|
sandbox.restore();
|
|
});
|
|
|
|
test('popup() and hide()', () => {
|
|
const popupApiStub = {
|
|
close: sandbox.stub(),
|
|
};
|
|
sandbox.stub(plugin.deprecated, 'popup').returns(popupApiStub);
|
|
const el = {};
|
|
instance.popup(el);
|
|
assert.isTrue(instance.plugin.deprecated.popup.calledWith(el));
|
|
|
|
instance.hide();
|
|
assert.isTrue(popupApiStub.close.called);
|
|
});
|
|
|
|
test('textfield', () => {
|
|
assert.equal(instance.textfield().tagName, 'PAPER-INPUT');
|
|
});
|
|
|
|
test('br', () => {
|
|
assert.equal(instance.br().tagName, 'BR');
|
|
});
|
|
|
|
test('msg', () => {
|
|
const el = instance.msg('foobar');
|
|
assert.equal(el.tagName, 'GR-LABEL');
|
|
assert.equal(el.textContent, 'foobar');
|
|
});
|
|
|
|
test('div', () => {
|
|
const el1 = document.createElement('span');
|
|
el1.textContent = 'foo';
|
|
const el2 = document.createElement('div');
|
|
el2.textContent = 'bar';
|
|
const div = instance.div(el1, el2);
|
|
assert.equal(div.tagName, 'DIV');
|
|
assert.equal(div.textContent, 'foobar');
|
|
});
|
|
|
|
test('button', () => {
|
|
const clickStub = sandbox.stub();
|
|
const button = instance.button('foo', {onclick: clickStub});
|
|
MockInteractions.tap(button);
|
|
flush(() => {
|
|
assert.isTrue(clickStub.called);
|
|
assert.equal(button.textContent, 'foo');
|
|
});
|
|
});
|
|
|
|
test('checkbox', () => {
|
|
const el = instance.checkbox();
|
|
assert.equal(el.tagName, 'INPUT');
|
|
assert.equal(el.type, 'checkbox');
|
|
});
|
|
|
|
test('label', () => {
|
|
const fakeMsg = {};
|
|
const fakeCheckbox = {};
|
|
sandbox.stub(instance, 'div');
|
|
sandbox.stub(instance, 'msg').returns(fakeMsg);
|
|
instance.label(fakeCheckbox, 'foo');
|
|
assert.isTrue(instance.div.calledWithExactly(fakeCheckbox, fakeMsg));
|
|
});
|
|
|
|
test('call', () => {
|
|
instance.action = {
|
|
method: 'METHOD',
|
|
__key: 'key',
|
|
__url: '/changes/1/revisions/2/foo~bar',
|
|
};
|
|
const sendStub = sandbox.stub().returns(Promise.resolve());
|
|
sandbox.stub(plugin, 'restApi').returns({
|
|
send: sendStub,
|
|
});
|
|
const payload = {foo: 'foo'};
|
|
const successStub = sandbox.stub();
|
|
instance.call(payload, successStub);
|
|
assert.isTrue(sendStub.calledWith(
|
|
'METHOD', '/changes/1/revisions/2/foo~bar', payload));
|
|
});
|
|
});
|
|
</script>
|