| // 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("")); |
| }); |
| }); |
| } |