1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // Copyright 2013 The Closure Library Authors. All Rights Reserved.
- //
- // 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.
- /**
- * @fileoverview Unit tests for goog.string.
- */
- goog.provide('goog.string.newlinesTest');
- goog.require('goog.string.newlines');
- goog.require('goog.testing.jsunit');
- goog.setTestOnly('goog.string.newlinesTest');
- // test for goog.string.splitLines
- function testSplitLines() {
- /**
- * @param {!Array<string>} expected
- * @param {string} string
- * @param {boolean=} opt_keepNewlines
- */
- function assertSplitLines(expected, string, opt_keepNewlines) {
- var keepNewlines = opt_keepNewlines || false;
- var lines = goog.string.newlines.splitLines(string, keepNewlines);
- assertElementsEquals(expected, lines);
- }
- // Test values borrowed from Python's splitlines. http://goo.gl/iwawx
- assertSplitLines(['abc', 'def', '', 'ghi'], 'abc\ndef\n\rghi');
- assertSplitLines(['abc', 'def', '', 'ghi'], 'abc\ndef\n\r\nghi');
- assertSplitLines(['abc', 'def', 'ghi'], 'abc\ndef\r\nghi');
- assertSplitLines(['abc', 'def', 'ghi'], 'abc\ndef\r\nghi\n');
- assertSplitLines(['abc', 'def', 'ghi', ''], 'abc\ndef\r\nghi\n\r');
- assertSplitLines(['', 'abc', 'def', 'ghi', ''], '\nabc\ndef\r\nghi\n\r');
- assertSplitLines(['', 'abc', 'def', 'ghi', ''], '\nabc\ndef\r\nghi\n\r');
- assertSplitLines(
- ['\n', 'abc\n', 'def\r\n', 'ghi\n', '\r'], '\nabc\ndef\r\nghi\n\r', true);
- assertSplitLines(['', 'abc', 'def', 'ghi', ''], '\nabc\ndef\r\nghi\n\r');
- assertSplitLines(
- ['\n', 'abc\n', 'def\r\n', 'ghi\n', '\r'], '\nabc\ndef\r\nghi\n\r', true);
- }
- function testGetLines() {
- var lines = goog.string.newlines.getLines('abc\ndef\n\rghi');
- assertEquals(4, lines.length);
- assertEquals(0, lines[0].startLineIndex);
- assertEquals(3, lines[0].endContentIndex);
- assertEquals(4, lines[0].endLineIndex);
- assertEquals('abc', lines[0].getContent());
- assertEquals('abc\n', lines[0].getFullLine());
- assertEquals('\n', lines[0].getNewline());
- assertEquals(4, lines[1].startLineIndex);
- assertEquals(7, lines[1].endContentIndex);
- assertEquals(8, lines[1].endLineIndex);
- assertEquals('def', lines[1].getContent());
- assertEquals('def\n', lines[1].getFullLine());
- assertEquals('\n', lines[1].getNewline());
- assertEquals(8, lines[2].startLineIndex);
- assertEquals(8, lines[2].endContentIndex);
- assertEquals(9, lines[2].endLineIndex);
- assertEquals('', lines[2].getContent());
- assertEquals('\r', lines[2].getFullLine());
- assertEquals('\r', lines[2].getNewline());
- assertEquals(9, lines[3].startLineIndex);
- assertEquals(12, lines[3].endContentIndex);
- assertEquals(12, lines[3].endLineIndex);
- assertEquals('ghi', lines[3].getContent());
- assertEquals('ghi', lines[3].getFullLine());
- assertEquals('', lines[3].getNewline());
- }
|