| Index: packages/which/test/is_executable_test.dart
|
| diff --git a/packages/which/test/is_executable_test.dart b/packages/which/test/is_executable_test.dart
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..788c41434865844769e3efe1f7c808fb79a13a5e
|
| --- /dev/null
|
| +++ b/packages/which/test/is_executable_test.dart
|
| @@ -0,0 +1,74 @@
|
| +
|
| +library which.test.is_executable;
|
| +
|
| +import 'dart:io';
|
| +
|
| +import 'package:mockito/mockito.dart';
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:which/src/is_executable.dart';
|
| +
|
| +import 'util.dart';
|
| +
|
| +main() {
|
| + group('isExecutableStat', () {
|
| + test('false if not a file', () {
|
| +
|
| + var stat = new MockFileStat();
|
| +
|
| + // A directory.
|
| + when(stat.type).thenReturn(FileSystemEntityType.DIRECTORY);
|
| +
|
| + var result = isExecutableStat(stat, false);
|
| +
|
| + expect(result, isFalse);
|
| +
|
| + verifyNever(stat.mode);
|
| + });
|
| +
|
| + test('true for all files on windows', () {
|
| +
|
| + var stat = new MockFileStat();
|
| +
|
| + // A file.
|
| + when(stat.type).thenReturn(FileSystemEntityType.FILE);
|
| +
|
| + var result = isExecutableStat(stat, true);
|
| +
|
| + expect(result, isTrue);
|
| +
|
| + verifyNever(stat.mode);
|
| + });
|
| +
|
| + test('true if has world execute permission', () {
|
| + var result = isExecutableStat(_getMockFileStat('000000000001'), false);
|
| + expect(result, isTrue);
|
| + });
|
| +
|
| + test('true if has group execute permission', () {
|
| + var result = isExecutableStat(_getMockFileStat('000000001000'), false);
|
| + expect(result, isTrue);
|
| + });
|
| +
|
| + test('true if has owner execute permission', () {
|
| + var result = isExecutableStat(_getMockFileStat('000001000000'), false);
|
| + expect(result, isTrue);
|
| + });
|
| +
|
| + test('false if has no execute permissions', () {
|
| + var result = isExecutableStat(_getMockFileStat('111110110110'), false);
|
| + expect(result, isFalse);
|
| + });
|
| + });
|
| +}
|
| +
|
| +MockFileStat _getMockFileStat(String mode) {
|
| + var stat = new MockFileStat();
|
| +
|
| + // A file.
|
| + when(stat.type).thenReturn(FileSystemEntityType.FILE);
|
| +
|
| + // Last bit is world execute.
|
| + when(stat.mode).thenReturn(int.parse(mode, radix: 2));
|
| +
|
| + return stat;
|
| +}
|
|
|