| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library pub_uploader_test; | 5 library pub_uploader_test; |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'dart:json' as json; | 8 import 'dart:json' as json; |
| 9 | 9 |
| 10 import 'test_pub.dart'; | 10 import 'test_pub.dart'; |
| 11 import '../../../pkg/unittest/lib/unittest.dart'; | 11 import '../../../pkg/unittest/lib/unittest.dart'; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 integration('adds an uploader', () { | 51 integration('adds an uploader', () { |
| 52 var server = new ScheduledServer(); | 52 var server = new ScheduledServer(); |
| 53 credentialsFile(server, 'access token').scheduleCreate(); | 53 credentialsFile(server, 'access token').scheduleCreate(); |
| 54 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); | 54 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); |
| 55 | 55 |
| 56 server.handle('POST', '/packages/pkg/uploaders.json', (request, response) { | 56 server.handle('POST', '/packages/pkg/uploaders.json', (request, response) { |
| 57 expect(new ByteStream(request).toBytes().then((bodyBytes) { | 57 expect(new ByteStream(request).toBytes().then((bodyBytes) { |
| 58 expect(new String.fromCharCodes(bodyBytes), equals('email=email')); | 58 expect(new String.fromCharCodes(bodyBytes), equals('email=email')); |
| 59 | 59 |
| 60 response.headers.contentType = new ContentType("application", "json"); | 60 response.headers.contentType = new ContentType("application", "json"); |
| 61 response.addString(json.stringify({ | 61 response.write(json.stringify({ |
| 62 'success': {'message': 'Good job!'} | 62 'success': {'message': 'Good job!'} |
| 63 })); | 63 })); |
| 64 response.close(); | 64 response.close(); |
| 65 }), completes); | 65 }), completes); |
| 66 }); | 66 }); |
| 67 | 67 |
| 68 expectLater(pub.nextLine(), equals('Good job!')); | 68 expectLater(pub.nextLine(), equals('Good job!')); |
| 69 pub.shouldExit(0); | 69 pub.shouldExit(0); |
| 70 }); | 70 }); |
| 71 | 71 |
| 72 integration('removes an uploader', () { | 72 integration('removes an uploader', () { |
| 73 var server = new ScheduledServer(); | 73 var server = new ScheduledServer(); |
| 74 credentialsFile(server, 'access token').scheduleCreate(); | 74 credentialsFile(server, 'access token').scheduleCreate(); |
| 75 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); | 75 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); |
| 76 | 76 |
| 77 server.handle('DELETE', '/packages/pkg/uploaders/email.json', | 77 server.handle('DELETE', '/packages/pkg/uploaders/email.json', |
| 78 (request, response) { | 78 (request, response) { |
| 79 response.headers.contentType = new ContentType("application", "json"); | 79 response.headers.contentType = new ContentType("application", "json"); |
| 80 response.addString(json.stringify({ | 80 response.write(json.stringify({ |
| 81 'success': {'message': 'Good job!'} | 81 'success': {'message': 'Good job!'} |
| 82 })); | 82 })); |
| 83 response.close(); | 83 response.close(); |
| 84 }); | 84 }); |
| 85 | 85 |
| 86 expectLater(pub.nextLine(), equals('Good job!')); | 86 expectLater(pub.nextLine(), equals('Good job!')); |
| 87 pub.shouldExit(0); | 87 pub.shouldExit(0); |
| 88 }); | 88 }); |
| 89 | 89 |
| 90 integration('defaults to the current package', () { | 90 integration('defaults to the current package', () { |
| 91 normalPackage.scheduleCreate(); | 91 normalPackage.scheduleCreate(); |
| 92 | 92 |
| 93 var server = new ScheduledServer(); | 93 var server = new ScheduledServer(); |
| 94 credentialsFile(server, 'access token').scheduleCreate(); | 94 credentialsFile(server, 'access token').scheduleCreate(); |
| 95 var pub = startPubUploader(server, ['add', 'email']); | 95 var pub = startPubUploader(server, ['add', 'email']); |
| 96 | 96 |
| 97 server.handle('POST', '/packages/test_pkg/uploaders.json', | 97 server.handle('POST', '/packages/test_pkg/uploaders.json', |
| 98 (request, response) { | 98 (request, response) { |
| 99 response.headers.contentType = new ContentType("application", "json"); | 99 response.headers.contentType = new ContentType("application", "json"); |
| 100 response.addString(json.stringify({ | 100 response.write(json.stringify({ |
| 101 'success': {'message': 'Good job!'} | 101 'success': {'message': 'Good job!'} |
| 102 })); | 102 })); |
| 103 response.close(); | 103 response.close(); |
| 104 }); | 104 }); |
| 105 | 105 |
| 106 expectLater(pub.nextLine(), equals('Good job!')); | 106 expectLater(pub.nextLine(), equals('Good job!')); |
| 107 pub.shouldExit(0); | 107 pub.shouldExit(0); |
| 108 }); | 108 }); |
| 109 | 109 |
| 110 integration('add provides an error', () { | 110 integration('add provides an error', () { |
| 111 var server = new ScheduledServer(); | 111 var server = new ScheduledServer(); |
| 112 credentialsFile(server, 'access token').scheduleCreate(); | 112 credentialsFile(server, 'access token').scheduleCreate(); |
| 113 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); | 113 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); |
| 114 | 114 |
| 115 server.handle('POST', '/packages/pkg/uploaders.json', (request, response) { | 115 server.handle('POST', '/packages/pkg/uploaders.json', (request, response) { |
| 116 response.statusCode = 400; | 116 response.statusCode = 400; |
| 117 response.headers.contentType = new ContentType("application", "json"); | 117 response.headers.contentType = new ContentType("application", "json"); |
| 118 response.addString(json.stringify({ | 118 response.write(json.stringify({ |
| 119 'error': {'message': 'Bad job!'} | 119 'error': {'message': 'Bad job!'} |
| 120 })); | 120 })); |
| 121 response.close(); | 121 response.close(); |
| 122 }); | 122 }); |
| 123 | 123 |
| 124 expectLater(pub.nextErrLine(), equals('Bad job!')); | 124 expectLater(pub.nextErrLine(), equals('Bad job!')); |
| 125 pub.shouldExit(1); | 125 pub.shouldExit(1); |
| 126 }); | 126 }); |
| 127 | 127 |
| 128 integration('remove provides an error', () { | 128 integration('remove provides an error', () { |
| 129 var server = new ScheduledServer(); | 129 var server = new ScheduledServer(); |
| 130 credentialsFile(server, 'access token').scheduleCreate(); | 130 credentialsFile(server, 'access token').scheduleCreate(); |
| 131 var pub = startPubUploader(server, | 131 var pub = startPubUploader(server, |
| 132 ['--package', 'pkg', 'remove', 'e/mail']); | 132 ['--package', 'pkg', 'remove', 'e/mail']); |
| 133 | 133 |
| 134 server.handle('DELETE', '/packages/pkg/uploaders/e%2Fmail.json', | 134 server.handle('DELETE', '/packages/pkg/uploaders/e%2Fmail.json', |
| 135 (request, response) { | 135 (request, response) { |
| 136 response.statusCode = 400; | 136 response.statusCode = 400; |
| 137 response.headers.contentType = new ContentType("application", "json"); | 137 response.headers.contentType = new ContentType("application", "json"); |
| 138 response.addString(json.stringify({ | 138 response.write(json.stringify({ |
| 139 'error': {'message': 'Bad job!'} | 139 'error': {'message': 'Bad job!'} |
| 140 })); | 140 })); |
| 141 response.close(); | 141 response.close(); |
| 142 }); | 142 }); |
| 143 | 143 |
| 144 expectLater(pub.nextErrLine(), equals('Bad job!')); | 144 expectLater(pub.nextErrLine(), equals('Bad job!')); |
| 145 pub.shouldExit(1); | 145 pub.shouldExit(1); |
| 146 }); | 146 }); |
| 147 | 147 |
| 148 integration('add provides invalid JSON', () { | 148 integration('add provides invalid JSON', () { |
| 149 var server = new ScheduledServer(); | 149 var server = new ScheduledServer(); |
| 150 credentialsFile(server, 'access token').scheduleCreate(); | 150 credentialsFile(server, 'access token').scheduleCreate(); |
| 151 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); | 151 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); |
| 152 | 152 |
| 153 server.handle('POST', '/packages/pkg/uploaders.json', (request, response) { | 153 server.handle('POST', '/packages/pkg/uploaders.json', (request, response) { |
| 154 response.addString("{not json"); | 154 response.write("{not json"); |
| 155 response.close(); | 155 response.close(); |
| 156 }); | 156 }); |
| 157 | 157 |
| 158 expectLater(pub.nextErrLine(), equals('Invalid server response:')); | 158 expectLater(pub.nextErrLine(), equals('Invalid server response:')); |
| 159 expectLater(pub.nextErrLine(), equals('{not json')); | 159 expectLater(pub.nextErrLine(), equals('{not json')); |
| 160 pub.shouldExit(1); | 160 pub.shouldExit(1); |
| 161 }); | 161 }); |
| 162 | 162 |
| 163 integration('remove provides invalid JSON', () { | 163 integration('remove provides invalid JSON', () { |
| 164 var server = new ScheduledServer(); | 164 var server = new ScheduledServer(); |
| 165 credentialsFile(server, 'access token').scheduleCreate(); | 165 credentialsFile(server, 'access token').scheduleCreate(); |
| 166 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); | 166 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); |
| 167 | 167 |
| 168 server.handle('DELETE', '/packages/pkg/uploaders/email.json', | 168 server.handle('DELETE', '/packages/pkg/uploaders/email.json', |
| 169 (request, response) { | 169 (request, response) { |
| 170 response.addString("{not json"); | 170 response.write("{not json"); |
| 171 response.close(); | 171 response.close(); |
| 172 }); | 172 }); |
| 173 | 173 |
| 174 expectLater(pub.nextErrLine(), equals('Invalid server response:')); | 174 expectLater(pub.nextErrLine(), equals('Invalid server response:')); |
| 175 expectLater(pub.nextErrLine(), equals('{not json')); | 175 expectLater(pub.nextErrLine(), equals('{not json')); |
| 176 pub.shouldExit(1); | 176 pub.shouldExit(1); |
| 177 }); | 177 }); |
| 178 } | 178 } |
| OLD | NEW |