| <!DOCTYPE html> | |
| <!-- | |
| @license | |
| Copyright (C) 2017 The Android Open Source Settings | |
| 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-settings-api</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-endpoint-decorator/gr-endpoint-decorator.html"> | |
| <link rel="import" href="gr-settings-api.html"> | |
| <script>void(0);</script> | |
| <test-fixture id="basic"> | |
| <template> | |
| <gr-endpoint-decorator name="settings-menu-item"> | |
| </gr-endpoint-decorator> | |
| <gr-endpoint-decorator name="settings-screen"> | |
| </gr-endpoint-decorator> | |
| </template> | |
| </test-fixture> | |
| <script> | |
| suite('gr-settings-api tests', () => { | |
| let sandbox; | |
| let settingsApi; | |
| setup(() => { | |
| sandbox = sinon.sandbox.create(); | |
| let plugin; | |
| Gerrit.install(p => { plugin = p; }, '0.1', | |
| 'http://test.com/plugins/testplugin/static/test.js'); | |
| sandbox.stub(Gerrit, '_arePluginsLoaded').returns(true); | |
| settingsApi = plugin.settings(); | |
| }); | |
| teardown(() => { | |
| settingsApi = null; | |
| sandbox.restore(); | |
| }); | |
| test('exists', () => { | |
| assert.isOk(settingsApi); | |
| }); | |
| test('works', done => { | |
| settingsApi | |
| .title('foo') | |
| .token('bar') | |
| .module('some-settings-screen') | |
| .build(); | |
| const element = fixture('basic'); | |
| flush(() => { | |
| const [menuItemEl, itemEl] = element; | |
| const menuItem = menuItemEl.$$('gr-settings-menu-item'); | |
| assert.isOk(menuItem); | |
| assert.equal(menuItem.title, 'foo'); | |
| assert.equal(menuItem.href, '#x/testplugin/bar'); | |
| const item = itemEl.$$('gr-settings-item'); | |
| assert.isOk(item); | |
| assert.equal(item.title, 'foo'); | |
| assert.equal(item.anchor, 'x/testplugin/bar'); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| </script> |