| <!-- |
| @license |
| 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. |
| --> |
| <!-- Polymer included for the html import polyfill. --> |
| <script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-lite.js"></script> |
| <script src="/components/wct-browser-legacy/browser.js"></script> |
| <title>gr-path-list-behavior</title> |
| |
| <script src="/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script> |
| |
| <script type="module"> |
| import '../../test/common-test-setup.js'; |
| import {PathListBehavior} from './gr-path-list-behavior.js'; |
| suite('gr-path-list-behavior tests', () => { |
| test('special sort', () => { |
| const sort = PathListBehavior.specialFilePathCompare; |
| const testFiles = [ |
| '/a.h', |
| '/MERGE_LIST', |
| '/a.cpp', |
| '/COMMIT_MSG', |
| '/asdasd', |
| '/mrPeanutbutter.py', |
| ]; |
| assert.deepEqual( |
| testFiles.sort(sort), |
| [ |
| '/COMMIT_MSG', |
| '/MERGE_LIST', |
| '/a.h', |
| '/a.cpp', |
| '/asdasd', |
| '/mrPeanutbutter.py', |
| ]); |
| }); |
| |
| test('file display name', () => { |
| const name = PathListBehavior.computeDisplayPath; |
| assert.equal(name('/foo/bar/baz'), '/foo/bar/baz'); |
| assert.equal(name('/foobarbaz'), '/foobarbaz'); |
| assert.equal(name('/COMMIT_MSG'), 'Commit message'); |
| assert.equal(name('/MERGE_LIST'), 'Merge list'); |
| }); |
| |
| test('isMagicPath', () => { |
| const isMagic = PathListBehavior.isMagicPath; |
| assert.isFalse(isMagic(undefined)); |
| assert.isFalse(isMagic('/foo.cc')); |
| assert.isTrue(isMagic('/COMMIT_MSG')); |
| assert.isTrue(isMagic('/MERGE_LIST')); |
| }); |
| |
| test('truncatePath with long path should add ellipsis', () => { |
| const truncatePath = PathListBehavior.truncatePath; |
| let path = 'level1/level2/level3/level4/file.js'; |
| let shortenedPath = truncatePath(path); |
| // The expected path is truncated with an ellipsis. |
| const expectedPath = '\u2026/file.js'; |
| assert.equal(shortenedPath, expectedPath); |
| |
| path = 'level2/file.js'; |
| shortenedPath = truncatePath(path); |
| assert.equal(shortenedPath, expectedPath); |
| }); |
| |
| test('truncatePath with opt_threshold', () => { |
| const truncatePath = PathListBehavior.truncatePath; |
| let path = 'level1/level2/level3/level4/file.js'; |
| let shortenedPath = truncatePath(path, 2); |
| // The expected path is truncated with an ellipsis. |
| const expectedPath = '\u2026/level4/file.js'; |
| assert.equal(shortenedPath, expectedPath); |
| |
| path = 'level2/file.js'; |
| shortenedPath = truncatePath(path, 2); |
| assert.equal(shortenedPath, path); |
| }); |
| |
| test('truncatePath with short path should not add ellipsis', () => { |
| const truncatePath = PathListBehavior.truncatePath; |
| const path = 'file.js'; |
| const expectedPath = 'file.js'; |
| const shortenedPath = truncatePath(path); |
| assert.equal(shortenedPath, expectedPath); |
| }); |
| }); |
| </script> |