diff options
Diffstat (limited to 'polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html')
-rw-r--r-- | polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html b/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html new file mode 100644 index 0000000000..73dda1b461 --- /dev/null +++ b/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html @@ -0,0 +1,91 @@ +<!DOCTYPE html> +<!-- +@license +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. +--> + +<title>gr-url-encoding-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"/> +<link rel="import" href="gr-url-encoding-behavior.html"> + +<script>void(0);</script> + +<test-fixture id="basic"> + <template> + <test-element></test-element> + </template> +</test-fixture> + +<script> + suite('gr-url-encoding-behavior tests', () => { + let element; + let sandbox; + + suiteSetup(() => { + // Define a Polymer element that uses this behavior. + Polymer({ + is: 'test-element', + behaviors: [Gerrit.URLEncodingBehavior], + }); + }); + + setup(() => { + sandbox = sinon.sandbox.create(); + element = fixture('basic'); + }); + + teardown(() => { + sandbox.restore(); + }); + + suite('encodeURL', () => { + test('double encodes', () => { + assert.equal(element.encodeURL('abc?123'), 'abc%253F123'); + assert.equal(element.encodeURL('def/ghi'), 'def%252Fghi'); + assert.equal(element.encodeURL('jkl'), 'jkl'); + assert.equal(element.encodeURL(''), ''); + }); + + test('does not convert colons', () => { + assert.equal(element.encodeURL('mno:pqr'), 'mno:pqr'); + }); + + test('converts spaces to +', () => { + assert.equal(element.encodeURL('words with spaces'), 'words+with+spaces'); + }); + + test('does not convert slashes when configured', () => { + assert.equal(element.encodeURL('stu/vwx', true), 'stu/vwx'); + }); + + test('does not convert slashes when configured', () => { + assert.equal(element.encodeURL('stu/vwx', true), 'stu/vwx'); + }); + }); + + suite('singleDecodeUrl', () => { + test('single decodes', () => { + assert.equal(element.singleDecodeURL('abc%3Fdef'), 'abc?def'); + }); + + test('converts + to space', () => { + assert.equal(element.singleDecodeURL('ghi+jkl'), 'ghi jkl'); + }); + }); + }); +</script> |