| <!DOCTYPE html> |
| <!-- |
| Copyright (C) 2016 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-api-interface</title> |
| |
| <script src="../../../bower_components/webcomponentsjs/webcomponents.min.js"></script> |
| <script src="../../../bower_components/web-component-tester/browser.js"></script> |
| <link rel="import" href="gr-js-api-interface.html"> |
| |
| <test-fixture id="basic"> |
| <template> |
| <gr-js-api-interface></gr-js-api-interface> |
| </template> |
| </test-fixture> |
| |
| <script> |
| suite('gr-js-api-interface tests', function() { |
| var element; |
| var plugin; |
| |
| setup(function() { |
| element = fixture('basic'); |
| Gerrit.install(function(p) { plugin = p; }, |
| 'http://test.com/plugins/testplugin/static/test.js'); |
| }); |
| |
| teardown(function() { |
| element._removeEventCallbacks(); |
| plugin = null; |
| }); |
| |
| test('url', function() { |
| assert.equal(plugin.url(), 'http://test.com/plugins/testplugin/'); |
| assert.equal(plugin.url('/static/test.js'), |
| 'http://test.com/plugins/testplugin/static/test.js'); |
| }); |
| |
| test('history event', function(done) { |
| plugin.on(element.EventType.HISTORY, function(path) { |
| assert.equal(path, '/path/to/awesomesauce'); |
| done(); |
| }); |
| element.handleEvent(element.EventType.HISTORY, |
| {path: '/path/to/awesomesauce'}); |
| }); |
| |
| test('showchange event', function(done) { |
| var testChange = { |
| _number: 42, |
| revisions: { |
| def: {_number: 2}, |
| abc: {_number: 1}, |
| }, |
| }; |
| plugin.on(element.EventType.SHOW_CHANGE, function(change, revision) { |
| assert.deepEqual(change, testChange); |
| assert.deepEqual(revision, testChange.revisions.abc); |
| done(); |
| }); |
| element.handleEvent(element.EventType.SHOW_CHANGE, |
| {change: testChange, patchNum: 1}); |
| }); |
| |
| test('comment event', function(done) { |
| var testCommentNode = {foo: 'bar'}; |
| plugin.on(element.EventType.COMMENT, function(commentNode) { |
| assert.deepEqual(commentNode, testCommentNode); |
| done(); |
| }); |
| element.handleEvent(element.EventType.COMMENT, {node: testCommentNode}); |
| }); |
| |
| test('submitchange', function() { |
| plugin.on(element.EventType.SUBMIT_CHANGE, function() { return true; }); |
| assert.isTrue(element.canSubmitChange()); |
| plugin.on(element.EventType.SUBMIT_CHANGE, function() { return false; }); |
| plugin.on(element.EventType.SUBMIT_CHANGE, function() { return true; }); |
| assert.isFalse(element.canSubmitChange()); |
| }); |
| |
| }); |
| </script> |