2012-04-25 19:58:56 +00:00
|
|
|
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
|
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
|
2012-11-08 18:33:17 +00:00
|
|
|
library test_utils;
|
2012-04-25 19:58:56 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Removes eight spaces of leading indentation from a multiline string.
|
|
|
|
*
|
|
|
|
* Note that this is very sensitive to how the literals are styled. They should
|
|
|
|
* be:
|
|
|
|
* '''
|
|
|
|
* Text starts on own line. Lines up with subsequent lines.
|
|
|
|
* Lines are indented exactly 8 characters from the left margin.
|
|
|
|
* Close is on the same line.'''
|
|
|
|
*
|
|
|
|
* This does nothing if text is only a single line.
|
|
|
|
*/
|
|
|
|
// TODO(nweiz): Make this auto-detect the indentation level from the first
|
|
|
|
// non-whitespace line.
|
|
|
|
String cleanUpLiteral(String text) {
|
|
|
|
var lines = text.split('\n');
|
|
|
|
if (lines.length <= 1) return text;
|
|
|
|
|
|
|
|
for (var j = 0; j < lines.length; j++) {
|
|
|
|
if (lines[j].length > 8) {
|
|
|
|
lines[j] = lines[j].substring(8, lines[j].length);
|
|
|
|
} else {
|
|
|
|
lines[j] = '';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-02-19 13:57:03 +00:00
|
|
|
return lines.join('\n');
|
2012-04-25 19:58:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Indents each line of [text] so that, when passed to [cleanUpLiteral], it will
|
|
|
|
* produce output identical to [text].
|
|
|
|
*
|
|
|
|
* This is useful for literals that need to include newlines but can't be
|
|
|
|
* conveniently represented as multi-line strings.
|
|
|
|
*/
|
|
|
|
// TODO(nweiz): Once cleanUpLiteral is fixed, get rid of this.
|
|
|
|
String indentLiteral(String text) {
|
|
|
|
var lines = text.split('\n');
|
|
|
|
if (lines.length <= 1) return text;
|
|
|
|
|
|
|
|
for (var i = 0; i < lines.length; i++) {
|
|
|
|
lines[i] = " ${lines[i]}";
|
|
|
|
}
|
|
|
|
|
2013-02-19 13:57:03 +00:00
|
|
|
return lines.join("\n");
|
2012-04-25 19:58:56 +00:00
|
|
|
}
|