Create functionality to switch between resemble mode and opacity mode Change-Id: I9780f98a7186ed93674e3c5b608e4bb23031a1ac
diff --git a/gr-image-diff-tool/gr-image-diff-tool.html b/gr-image-diff-tool/gr-image-diff-tool.html index eb49f60..68e7f07 100644 --- a/gr-image-diff-tool/gr-image-diff-tool.html +++ b/gr-image-diff-tool/gr-image-diff-tool.html
@@ -14,10 +14,33 @@ limitations under the License. --> +<link rel="import" href="../gr-opacity-diff-mode/gr-opacity-diff-mode.html"> +<link rel="import" href="../gr-resemble-diff-mode/gr-resemble-diff-mode.html"> + <dom-module id="gr-image-diff-tool"> <template> <style> + :host { + display: block; + } </style> + + <template is="dom-if" if="[[_showResembleMode]]" restamp="true"> + <gr-resemble-diff-mode + base-image="[[baseImage]]" + revision-image="[[revisionImage]]"></gr-resemble-diff-mode> + </template> + + <template is="dom-if" if="[[_showOpacityMode]]" restamp="true"> + <gr-opacity-diff-mode + base-image="[[baseImage]]" + revision-image="[[revisionImage]]"></gr-opacity-diff-mode> + </template> + + <select id="dropdown" on-change="handleSelect"> + <option value="resemble">Resemble Mode</option> + <option value="opacity">Opacity Mode</option> + </select> </template> <script src="gr-image-diff-tool.js"></script> </dom-module> \ No newline at end of file
diff --git a/gr-image-diff-tool/gr-image-diff-tool.js b/gr-image-diff-tool/gr-image-diff-tool.js index 19769a7..20a0ac9 100644 --- a/gr-image-diff-tool/gr-image-diff-tool.js +++ b/gr-image-diff-tool/gr-image-diff-tool.js
@@ -16,8 +16,27 @@ Polymer({ is: 'gr-image-diff-tool', + properties: { - hi: String, + _showResembleMode: { + type: Boolean, + value: true, + }, + _showOpacityMode: { + type: Boolean, + value: false, + }, + }, + + handleSelect() { + const mode = this.$.dropdown.value; + if (mode === 'resemble') { + this._showResembleMode = true; + this._showOpacityMode = false; + } else if (mode === 'opacity') { + this._showOpacityMode = true; + this._showResembleMode = false; + } }, }); })(); \ No newline at end of file
diff --git a/gr-image-diff-tool/gr-image-diff-tool_test.html b/gr-image-diff-tool/gr-image-diff-tool_test.html new file mode 100644 index 0000000..0fe8a3e --- /dev/null +++ b/gr-image-diff-tool/gr-image-diff-tool_test.html
@@ -0,0 +1,68 @@ +<!-- +Copyright (C) 2018 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>image-diff-tool</title> + +<link rel="import" href="../node_modules/polymer/polymer.html"> +<link rel="import" href="../node_modules/@polymer/test-fixture/test-fixture.html"> +<link rel="import" href="../node_modules/iron-test-helpers/iron-test-helpers.html"> +<link rel="import" href="./gr-image-diff-tool.html"> + +<script>void(0);</script> + +<script src="../node_modules/webcomponents.js/webcomponents-lite.min.js"></script> +<script src="../node_modules/web-component-tester/browser.js"></script> +<script src="../node_modules/@polymer/sinonjs/sinon.js"></script> + +<test-fixture id="basicFixture"> + <template> + <gr-image-diff-tool> + </gr-image-diff-tool> + </template> +</test-fixture> + +<script> + suite('gr-image-diff-tool tests', () => { + let element; + + setup(() => { + element = fixture('basicFixture'); + }); + + test('test opacity mode', () => { + element.$.dropdown.value = 'opacity'; + element.handleSelect(); + assert.isTrue(element._showOpacityMode); + assert.isFalse(element._showResembleMode); + flushAsynchronousOperations(); + + assert.ok(element.$$('gr-opacity-diff-mode')); + assert.equal(element.$$('gr-resemble-diff-mode'), null); + }); + + test('test resemble mode', () => { + element.$.dropdown.value = 'resemble'; + element.handleSelect(); + assert.isTrue(element._showResembleMode); + assert.isFalse(element._showOpacityMode); + flushAsynchronousOperations(); + + assert.ok(element.$$('gr-resemble-diff-mode')); + assert.equal(element.$$('gr-opacity-diff-mode'), null); + }); + }); +</script> \ No newline at end of file
diff --git a/test/index.html b/test/index.html index 181c106..6b86c35 100644 --- a/test/index.html +++ b/test/index.html
@@ -24,6 +24,7 @@ <script> const suites = [ + '../gr-image-diff-tool/gr-image-diff-tool_test.html', '../gr-resemble-diff-mode/gr-resemble-diff-mode_test.html', ];