Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1134)

Unified Diff: pkg/scheduled_test/test/descriptor/file_test.dart

Issue 15074003: Add the ability to match the contents of a file descriptor against a Matcher. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/scheduled_test/test/descriptor/file_test.dart
diff --git a/pkg/scheduled_test/test/descriptor/file_test.dart b/pkg/scheduled_test/test/descriptor/file_test.dart
index 877c02ae9d67cb1e66c559aca0ce05c183df0de7..5b64577c9eb6748cb9579bef9516fc2724f2ddbc 100644
--- a/pkg/scheduled_test/test/descriptor/file_test.dart
+++ b/pkg/scheduled_test/test/descriptor/file_test.dart
@@ -180,4 +180,98 @@ void main() {
]), verbose: true);
});
}, passing: ['test 2']);
-}
+
+ expectTestsPass('matcherFile().create() creates an empty file', () {
+ test('test', () {
+ scheduleSandbox();
Andrei Mouravski 2013/05/09 00:08:14 Why not pull the schedule into a global group's se
nweiz 2013/05/09 00:15:12 That doesn't work with metatest. Each call to [exp
+
+ d.matcherFile('name.txt', isNot(isEmpty)).create();
+
+ schedule(() {
+ expect(new File(path.join(sandbox, 'name.txt')).readAsString(),
+ completion(equals('')));
+ });
+ });
+ });
+
+ expectTestsPass('matcherFile().validate() completes successfully if the '
+ 'string contents of the file matches the matcher', () {
+ test('test', () {
+ scheduleSandbox();
+
+ schedule(() {
+ return new File(path.join(sandbox, 'name.txt'))
+ .writeAsString('barfoobaz');
+ });
+
+ d.matcherFile('name.txt', contains('foo')).validate();
+ });
+ });
+
+ expectTestsPass("matcherFile().validate() fails if the string contents of "
+ "the file doesn't match the matcher", () {
+ var errors;
+ test('test 1', () {
+ scheduleSandbox();
+
+ currentSchedule.onException.schedule(() {
+ errors = currentSchedule.errors;
+ });
+
+ schedule(() {
+ return new File(path.join(sandbox, 'name.txt'))
+ .writeAsString('barfoobaz');
+ });
+
+ d.matcherFile('name.txt', contains('baaz')).validate();
+ });
+
+ test('test 2', () {
+ expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
+ expect(errors.map((e) => e.error.message), equals([
+ "Expected: contains 'baaz'\n but: was 'barfoobaz'.\n"
+ ]), verbose: true);
+ });
+ }, passing: ['test 2']);
+
+ expectTestsPass('binaryMatcherFile().validate() completes successfully if '
+ 'the string contents of the file matches the matcher', () {
+ test('test', () {
+ scheduleSandbox();
+
+ schedule(() {
+ return new File(path.join(sandbox, 'name.txt'))
+ .writeAsString('barfoobaz');
+ });
+
+ d.binaryMatcherFile('name.txt', contains(111)).validate();
+ });
+ });
+
+ expectTestsPass("binaryMatcherFile().validate() fails if the string contents "
Andrei Mouravski 2013/05/09 00:08:14 Use ' instead of " here and elsewhere.
nweiz 2013/05/09 00:15:12 This needs to be double quotes because it contains
+ "of the file doesn't match the matcher", () {
+ var errors;
+ test('test 1', () {
+ scheduleSandbox();
+
+ currentSchedule.onException.schedule(() {
+ errors = currentSchedule.errors;
+ });
+
+ schedule(() {
+ return new File(path.join(sandbox, 'name.txt'))
+ .writeAsString('barfoobaz');
+ });
+
+ d.binaryMatcherFile('name.txt', contains(12)).validate();
+ });
+
+ test('test 2', () {
+ expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
+ expect(errors.map((e) => e.error.message), equals([
+ "Expected: contains <12>\n"
+ " but: was <[98, 97, 114, 102, 111, 111, 98, 97, 122]>.\n"
+ ]), verbose: true);
+ });
+ }, passing: ['test 2']);
+}

Powered by Google App Engine
This is Rietveld 408576698