
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
225 lines
6.7 KiB
HTML
225 lines
6.7 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>keyboard-shortcut-behavior</title>
|
|
|
|
<script src="../../bower_components/webcomponentsjs/webcomponents.min.js"></script>
|
|
<script src="../../bower_components/web-component-tester/browser.js"></script>
|
|
<link rel="import" href="../../test/common-test-setup.html"/>
|
|
<script>
|
|
/** @type {string} */
|
|
window.CANONICAL_PATH = '/r';
|
|
</script>
|
|
|
|
<link rel="import" href="../base-url-behavior/base-url-behavior.html">
|
|
<link rel="import" href="rest-client-behavior.html">
|
|
|
|
<test-fixture id="basic">
|
|
<template>
|
|
<test-element></test-element>
|
|
</template>
|
|
</test-fixture>
|
|
|
|
<test-fixture id="within-overlay">
|
|
<template>
|
|
<gr-overlay>
|
|
<test-element></test-element>
|
|
</gr-overlay>
|
|
</template>
|
|
</test-fixture>
|
|
|
|
<script>
|
|
suite('rest-client-behavior tests', () => {
|
|
let element;
|
|
// eslint-disable-next-line no-unused-vars
|
|
let overlay;
|
|
|
|
suiteSetup(() => {
|
|
// Define a Polymer element that uses this behavior.
|
|
Polymer({
|
|
is: 'test-element',
|
|
behaviors: [
|
|
Gerrit.BaseUrlBehavior,
|
|
Gerrit.RESTClientBehavior,
|
|
],
|
|
});
|
|
});
|
|
|
|
setup(() => {
|
|
element = fixture('basic');
|
|
overlay = fixture('within-overlay');
|
|
});
|
|
|
|
test('changeBaseURL', () => {
|
|
assert.deepEqual(
|
|
element.changeBaseURL('1', '1'),
|
|
'/r/changes/1/revisions/1'
|
|
);
|
|
});
|
|
|
|
test('changePath', () => {
|
|
assert.deepEqual(element.changePath('1'), '/r/c/1');
|
|
});
|
|
|
|
test('Open status', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'NEW',
|
|
labels: {},
|
|
mergeable: true,
|
|
};
|
|
let statuses = element.changeStatuses(change);
|
|
let statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, []);
|
|
assert.equal(statusString, '');
|
|
|
|
statuses = element.changeStatuses(change,
|
|
{readyToSubmit: false, includeDerived: true});
|
|
assert.deepEqual(statuses, ['Active']);
|
|
|
|
// With no missing labels
|
|
statuses = element.changeStatuses(change,
|
|
{readyToSubmit: true, includeDerived: true});
|
|
statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, ['Ready to submit']);
|
|
|
|
change.mergeable = false;
|
|
statuses = element.changeStatuses(change,
|
|
{readyToSubmit: true, includeDerived: true});
|
|
assert.deepEqual(statuses, ['Merge Conflict']);
|
|
|
|
delete change.mergeable;
|
|
statuses = element.changeStatuses(change,
|
|
{readyToSubmit: true, includeDerived: true, mergeable: true});
|
|
assert.deepEqual(statuses, ['Ready to submit']);
|
|
|
|
statuses = element.changeStatuses(change,
|
|
{readyToSubmit: true, includeDerived: true, mergeable: false});
|
|
assert.deepEqual(statuses, ['Merge Conflict']);
|
|
});
|
|
|
|
test('Merge conflict', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'NEW',
|
|
labels: {},
|
|
mergeable: false,
|
|
};
|
|
const statuses = element.changeStatuses(change);
|
|
const statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, ['Merge Conflict']);
|
|
assert.equal(statusString, 'Merge Conflict');
|
|
});
|
|
|
|
test('mergeable prop undefined', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'NEW',
|
|
labels: {},
|
|
};
|
|
const statuses = element.changeStatuses(change);
|
|
const statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, []);
|
|
assert.equal(statusString, '');
|
|
});
|
|
|
|
test('Merged status', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'MERGED',
|
|
labels: {},
|
|
};
|
|
const statuses = element.changeStatuses(change);
|
|
const statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, ['Merged']);
|
|
assert.equal(statusString, 'Merged');
|
|
});
|
|
|
|
test('Abandoned status', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'ABANDONED',
|
|
labels: {},
|
|
};
|
|
const statuses = element.changeStatuses(change);
|
|
const statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, ['Abandoned']);
|
|
assert.equal(statusString, 'Abandoned');
|
|
});
|
|
|
|
test('Open status with private and wip', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'NEW',
|
|
is_private: true,
|
|
work_in_progress: true,
|
|
labels: {},
|
|
mergeable: true,
|
|
};
|
|
const statuses = element.changeStatuses(change);
|
|
const statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, ['WIP', 'Private']);
|
|
assert.equal(statusString, 'WIP, Private');
|
|
});
|
|
|
|
test('Merge conflict with private and wip', () => {
|
|
const change = {
|
|
change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
|
|
revisions: {
|
|
rev1: {_number: 1},
|
|
},
|
|
current_revision: 'rev1',
|
|
status: 'NEW',
|
|
is_private: true,
|
|
work_in_progress: true,
|
|
labels: {},
|
|
mergeable: false,
|
|
};
|
|
const statuses = element.changeStatuses(change);
|
|
const statusString = element.changeStatusString(change);
|
|
assert.deepEqual(statuses, ['Merge Conflict', 'WIP', 'Private']);
|
|
assert.equal(statusString, 'Merge Conflict, WIP, Private');
|
|
});
|
|
});
|
|
</script>
|