| Index: packages/usage/test/usage_impl_io_test.dart
|
| diff --git a/packages/usage/test/usage_impl_io_test.dart b/packages/usage/test/usage_impl_io_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a0eec18d99d9961890daea0d6f5f9e213a618fef
|
| --- /dev/null
|
| +++ b/packages/usage/test/usage_impl_io_test.dart
|
| @@ -0,0 +1,74 @@
|
| +// 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.
|
| +
|
| +library usage.usage_impl_io_test;
|
| +
|
| +import 'dart:async';
|
| +import 'dart:io';
|
| +
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:usage/src/usage_impl_io.dart';
|
| +
|
| +void defineTests() {
|
| + group('IOPostHandler', () {
|
| + test('sendPost', () {
|
| + var httpClient = new MockHttpClient();
|
| + IOPostHandler postHandler = new IOPostHandler(mockClient: httpClient);
|
| + Map args = {'utv': 'varName', 'utt': 123};
|
| + return postHandler.sendPost('http://www.google.com', args).then((_) {
|
| + expect(httpClient.sendCount, 1);
|
| + });
|
| + });
|
| + });
|
| +
|
| + group('IOPersistentProperties', () {
|
| + test('add', () {
|
| + IOPersistentProperties props = new IOPersistentProperties('foo_props');
|
| + props['foo'] = 'bar';
|
| + expect(props['foo'], 'bar');
|
| + });
|
| +
|
| + test('remove', () {
|
| + IOPersistentProperties props = new IOPersistentProperties('foo_props');
|
| + props['foo'] = 'bar';
|
| + expect(props['foo'], 'bar');
|
| + props['foo'] = null;
|
| + expect(props['foo'], null);
|
| + });
|
| + });
|
| +}
|
| +
|
| +class MockHttpClient implements HttpClient {
|
| + String userAgent;
|
| + int sendCount = 0;
|
| + int writeCount = 0;
|
| + bool closed = false;
|
| + Future<HttpClientRequest> postUrl(Uri url) {
|
| + return new Future.value(new MockHttpClientRequest(this));
|
| + }
|
| + noSuchMethod(Invocation invocation) { }
|
| +}
|
| +
|
| +class MockHttpClientRequest implements HttpClientRequest {
|
| + final MockHttpClient client;
|
| + MockHttpClientRequest(this.client);
|
| + void write(Object obj) {
|
| + client.writeCount++;
|
| + }
|
| + Future<HttpClientResponse> close() {
|
| + client.closed = true;
|
| + return new Future.value(new MockHttpClientResponse(client));
|
| + }
|
| + noSuchMethod(Invocation invocation) { }
|
| +}
|
| +
|
| +class MockHttpClientResponse implements HttpClientResponse {
|
| + final MockHttpClient client;
|
| + MockHttpClientResponse(this.client);
|
| + Future drain([var futureValue]) {
|
| + client.sendCount++;
|
| + return new Future.value();
|
| + }
|
| + noSuchMethod(Invocation invocation) { }
|
| +}
|
|
|