| // 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. |
| |
| import 'package:dart_style/dart_style.dart'; |
| import 'package:test/test.dart'; |
| |
| void main() { |
| var selection = SourceCode('123456;', selectionStart: 3, selectionLength: 2); |
| var noSelection = SourceCode('123456;'); |
| |
| group('constructor', () { |
| test('throws on negative start', () { |
| expect(() { |
| SourceCode('12345;', selectionStart: -1, selectionLength: 0); |
| }, throwsArgumentError); |
| }); |
| |
| test('throws on out of bounds start', () { |
| expect(() { |
| SourceCode('12345;', selectionStart: 7, selectionLength: 0); |
| }, throwsArgumentError); |
| }); |
| |
| test('throws on negative length', () { |
| expect(() { |
| SourceCode('12345;', selectionStart: 1, selectionLength: -1); |
| }, throwsArgumentError); |
| }); |
| |
| test('throws on out of bounds length', () { |
| expect(() { |
| SourceCode('12345;', selectionStart: 2, selectionLength: 5); |
| }, throwsArgumentError); |
| }); |
| |
| test('throws is start is null and length is not', () { |
| expect(() { |
| SourceCode('12345;', selectionStart: 0); |
| }, throwsArgumentError); |
| }); |
| |
| test('throws is length is null and start is not', () { |
| expect(() { |
| 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('')); |
| }); |
| }); |
| } |