blob: ed146a1fc4504b186ffd89fa0e5286af761afb22 [file] [log] [blame]
// Copyright (c) 2014, 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.
library dart_style.test.source_code_test;
import 'package:unittest/unittest.dart';
import 'package:dart_style/dart_style.dart';
void main() {
var selection = new SourceCode("123456;",
selectionStart: 3, selectionLength: 2);
var noSelection = new SourceCode("123456;");
group('constructor', () {
test('throws on negative start', () {
expect(() {
new SourceCode("12345;", selectionStart: -1, selectionLength: 0);
}, throwsArgumentError);
});
test('throws on out of bounds start', () {
expect(() {
new SourceCode("12345;", selectionStart: 7, selectionLength: 0);
}, throwsArgumentError);
});
test('throws on negative length', () {
expect(() {
new SourceCode("12345;", selectionStart: 1, selectionLength: -1);
}, throwsArgumentError);
});
test('throws on out of bounds length', () {
expect(() {
new SourceCode("12345;", selectionStart: 2, selectionLength: 5);
}, throwsArgumentError);
});
test('throws is start is null and length is not', () {
expect(() {
new SourceCode("12345;", selectionStart: 0);
}, throwsArgumentError);
});
test('throws is length is null and start is not', () {
expect(() {
new SourceCode("12345;", selectionLength: 1);
}, throwsArgumentError);
});
});
group('textBeforeSelection', () {
test('gets substring before selection', () {
expect(selection.textBeforeSelection, equals("123"));
});
test('gets entire string if no selection', () {
expect(noSelection.textBeforeSelection, equals("123456;"));
});
});
group('selectedText', () {
test('gets selection substring', () {
expect(selection.selectedText, equals("45"));
});
test('gets empty string if no selection', () {
expect(noSelection.selectedText, equals(""));
});
});
group('textAfterSelection', () {
test('gets substring after selection', () {
expect(selection.textAfterSelection, equals("6;"));
});
test('gets empty string if no selection', () {
expect(noSelection.textAfterSelection, equals(""));
});
});
}