Index: pkg/dart_messages/test/dart_messages_test.dart |
diff --git a/pkg/dart_messages/test/dart_messages_test.dart b/pkg/dart_messages/test/dart_messages_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3983773b88f2c23ebc465742e51dea7adc8d6c89 |
--- /dev/null |
+++ b/pkg/dart_messages/test/dart_messages_test.dart |
@@ -0,0 +1,40 @@ |
+// Copyright (c) 2015, 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. |
+ |
+import 'dart:convert'; |
+import 'dart:io'; |
+ |
+import '../lib/shared_messages.dart'; |
+ |
+void testJsonIsUpdated() { |
+ var packageRoot = Platform.packageRoot; |
+ if (packageRoot == null || packageRoot == "") { |
+ throw new UnsupportedError("This test requires a package root."); |
+ } |
+ var jsonUri = |
+ Uri.parse(packageRoot).resolve('dart_messages/shared_messages.json'); |
+ var jsonPath = jsonUri.toFilePath(); |
+ var content = new File(jsonPath).readAsStringSync(); |
+ if (JSON.encode(MESSAGES) != content) { |
+ print("The content of the Dart messages and the corresponding JSON file"); |
+ print("is not the same."); |
+ print("Please run bin/json_converter to update the JSON file."); |
+ throw "Content is not the same"; |
+ } |
+} |
+ |
+void testIdsAreUnique() { |
+ var usedIds = new Set(); |
+ for (var entry in MESSAGES.values) { |
+ var id = entry['id']; |
+ if (!usedIds.add(id)) { |
+ throw "Id appears twice: $id"; |
+ } |
+ } |
+} |
+ |
+void main() { |
+ testJsonIsUpdated(); |
+ testIdsAreUnique(); |
+} |