blob: b0d250074676a35b8b7eb96f348270302bd960e0 [file] [log] [blame]
// Copyright (c) 2016, 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:test/test.dart';
import 'package:boolean_selector/boolean_selector.dart';
void main() {
test('variable', () {
_expectEqualsSelf('foo');
});
test('not', () {
_expectEqualsSelf('!foo');
});
test('or', () {
_expectEqualsSelf('foo || bar');
});
test('and', () {
_expectEqualsSelf('foo && bar');
});
test('conditional', () {
_expectEqualsSelf('foo ? bar : baz');
});
test('all', () {
expect(BooleanSelector.all, equals(BooleanSelector.all));
});
test('none', () {
expect(BooleanSelector.none, equals(BooleanSelector.none));
});
test("redundant parens don't matter", () {
expect(BooleanSelector.parse('foo && (bar && baz)'),
equals(BooleanSelector.parse('foo && (bar && baz)')));
});
test('meaningful parens do matter', () {
expect(BooleanSelector.parse('(foo && bar) || baz'),
equals(BooleanSelector.parse('foo && bar || baz')));
});
}
void _expectEqualsSelf(String selector) {
expect(
BooleanSelector.parse(selector), equals(BooleanSelector.parse(selector)));
}