| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, 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.validator.utf8_readme; |  | 
| 6 |  | 
| 7 import 'dart:async'; | 5 import 'dart:async'; | 
| 8 import 'dart:convert'; | 6 import 'dart:convert'; | 
| 9 | 7 | 
| 10 import '../entrypoint.dart'; | 8 import '../entrypoint.dart'; | 
| 11 import '../io.dart'; | 9 import '../io.dart'; | 
| 12 import '../validator.dart'; | 10 import '../validator.dart'; | 
| 13 | 11 | 
| 14 /// Validates that a package's README is valid utf-8. | 12 /// Validates that a package's README is valid utf-8. | 
| 15 class Utf8ReadmeValidator extends Validator { | 13 class Utf8ReadmeValidator extends Validator { | 
| 16   Utf8ReadmeValidator(Entrypoint entrypoint) | 14   Utf8ReadmeValidator(Entrypoint entrypoint) | 
| 17     : super(entrypoint); | 15     : super(entrypoint); | 
| 18 | 16 | 
| 19   Future validate() { | 17   Future validate() { | 
| 20     return new Future.sync(() { | 18     return new Future.sync(() { | 
| 21       var readme = entrypoint.root.readmePath; | 19       var readme = entrypoint.root.readmePath; | 
| 22       if (readme == null) return; | 20       if (readme == null) return; | 
| 23       var bytes = readBinaryFile(readme); | 21       var bytes = readBinaryFile(readme); | 
| 24       try { | 22       try { | 
| 25         // UTF8.decode doesn't allow invalid UTF-8. | 23         // UTF8.decode doesn't allow invalid UTF-8. | 
| 26         UTF8.decode(bytes); | 24         UTF8.decode(bytes); | 
| 27       } on FormatException catch (_) { | 25       } on FormatException catch (_) { | 
| 28         warnings.add("$readme contains invalid UTF-8.\n" | 26         warnings.add("$readme contains invalid UTF-8.\n" | 
| 29             "This will cause it to be displayed incorrectly on " | 27             "This will cause it to be displayed incorrectly on " | 
| 30                 "pub.dartlang.org."); | 28                 "pub.dartlang.org."); | 
| 31       } | 29       } | 
| 32     }); | 30     }); | 
| 33   } | 31   } | 
| 34 } | 32 } | 
| 35 | 33 | 
| OLD | NEW | 
|---|