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

Unified Diff: pkg/analysis_server/test/protocol_test.dart

Issue 342383002: Allow "null" as a synonym for [] or {} in the analysis server API. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 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/analysis_server/test/protocol_test.dart
diff --git a/pkg/analysis_server/test/protocol_test.dart b/pkg/analysis_server/test/protocol_test.dart
index 36bf1a2df5d2757cb7a9bbde8150b82379914c96..9013e9129995c2bfeea3edf66580238f0506f81f 100644
--- a/pkg/analysis_server/test/protocol_test.dart
+++ b/pkg/analysis_server/test/protocol_test.dart
@@ -75,6 +75,14 @@ class RequestTest {
}
@runTest
+ static void getParameter_null() {
+ String name = 'name';
+ Request request = new Request('0', '');
+ request.setParameter(name, null);
+ expect(request.getParameter(name, 'default').datum, equals(null));
+ }
+
+ @runTest
static void getParameter_undefined() {
String name = 'name';
String defaultValue = 'default value';
@@ -92,6 +100,14 @@ class RequestTest {
}
@runTest
+ static void getRequiredParameter_null() {
+ String name = 'name';
+ Request request = new Request('0', '');
+ request.setParameter(name, null);
+ expect(request.getRequiredParameter(name).datum, equals(null));
+ }
+
+ @runTest
static void getRequiredParameter_undefined() {
String name = 'name';
Request request = new Request('0', '');
@@ -291,6 +307,12 @@ class RequestDatumTest {
}
@runTest
+ static void indexOperator_null() {
+ setUp();
+ expect(() => makeDatum(null)['foo'], _throwsInvalidParameter);
+ }
+
+ @runTest
static void indexOperator_missingKey() {
setUp();
expect(() => makeDatum({
@@ -321,6 +343,12 @@ class RequestDatumTest {
}
@runTest
+ static void hasKey_null() {
+ setUp();
+ expect(makeDatum(null).hasKey('foo'), isFalse);
+ }
+
+ @runTest
static void forEachMap_nonMap() {
setUp();
expect(() => makeDatum(1).forEachMap((key, value) {
@@ -337,6 +365,14 @@ class RequestDatumTest {
}
@runTest
+ static void forEachMap_null() {
+ setUp();
+ makeDatum(null).forEachMap((key, value) {
+ fail('Empty map should not be iterated');
+ });
+ }
+
+ @runTest
static void forEachMap_oneElementMap() {
setUp();
int callCount = 0;
@@ -389,12 +425,27 @@ class RequestDatumTest {
}
@runTest
+ static void isList() {
+ setUp();
+ expect(makeDatum(3).isList, isFalse);
+ expect(makeDatum(null).isList, isTrue);
+ expect(makeDatum([]).isList, isTrue);
+ expect(makeDatum(['foo', 'bar']).isList, isTrue);
+ }
+
+ @runTest
static void asList_nonList() {
setUp();
expect(() => makeDatum(3).asList((datum) => null), _throwsInvalidParameter);
}
@runTest
+ static void asList_null() {
+ setUp();
+ expect(makeDatum(null).asList((datum) => datum.asString()), equals([]));
+ }
+
+ @runTest
static void asList_emptyList() {
setUp();
expect(makeDatum([]).asList((datum) => datum.asString()), equals([]));
@@ -414,15 +465,66 @@ class RequestDatumTest {
}
@runTest
+ static void isStringList() {
+ setUp();
+ expect(makeDatum(['foo', 'bar']).isStringList, isTrue);
+ expect(makeDatum([]).isStringList, isTrue);
+ expect(makeDatum(null).isStringList, isTrue);
+ expect(makeDatum(['foo', 1]).isStringList, isFalse);
+ expect(makeDatum({}).isStringList, isFalse);
+ }
+
+ @runTest
static void asStringList() {
setUp();
expect(makeDatum(['foo', 'bar']).asStringList(), equals(['foo', 'bar']));
expect(makeDatum([]).asStringList(), equals([]));
+ expect(makeDatum(null).asStringList(), equals([]));
expect(() => makeDatum(['foo', 1]).asStringList(), _throwsInvalidParameter);
expect(() => makeDatum({}).asStringList(), _throwsInvalidParameter);
}
@runTest
+ static void isMap() {
+ setUp();
+ expect(makeDatum({
+ 'key1': 'value1',
+ 'key2': 'value2'
+ }).isMap, isTrue);
+ expect(makeDatum({}).isMap, isTrue);
+ expect(makeDatum(null).isMap, isTrue);
+ expect(makeDatum({
+ 'key1': 'value1',
+ 'key2': 2
+ }).isMap, isTrue);
+ expect(makeDatum({
+ 'key1': 1,
+ 'key2': 2
+ }).isMap, isTrue);
+ expect(makeDatum([]).isMap, isFalse);
+ }
+
+ @runTest
+ static void isStringMap() {
+ setUp();
+ expect(makeDatum({
+ 'key1': 'value1',
+ 'key2': 'value2'
+ }).isStringMap, isTrue);
+ expect(makeDatum({}).isStringMap, isTrue);
+ expect(makeDatum(null).isStringMap, isTrue);
+ expect(makeDatum({
+ 'key1': 'value1',
+ 'key2': 2
+ }).isStringMap, isFalse);
+ expect(makeDatum({
+ 'key1': 1,
+ 'key2': 2
+ }).isStringMap, isFalse);
+ expect(makeDatum([]).isMap, isFalse);
+ }
+
+ @runTest
static void asStringMap() {
setUp();
expect(makeDatum({
@@ -445,6 +547,26 @@ class RequestDatumTest {
}
@runTest
+ static void isStringListMap() {
+ setUp();
+ expect(makeDatum({
+ 'key1': ['value11', 'value12'],
+ 'key2': ['value21', 'value22']
+ }).isStringListMap, isTrue);
+ expect(makeDatum({
+ 'key1': 10,
+ 'key2': 20
+ }).isStringListMap, isFalse);
+ expect(makeDatum({
+ 'key1': [11, 12],
+ 'key2': [21, 22]
+ }).isStringListMap, isFalse);
+ expect(makeDatum({}).isStringListMap, isTrue);
+ expect(makeDatum(null).isStringListMap, isTrue);
+ expect(makeDatum(3).isStringListMap, isFalse);
+ }
+
+ @runTest
static void asStringListMap() {
setUp();
{
@@ -468,6 +590,9 @@ class RequestDatumTest {
};
expect(() => makeDatum(map).asStringListMap(), _throwsInvalidParameter);
}
+ expect(makeDatum({}).asStringListMap(), equals({}));
+ expect(makeDatum(null).asStringListMap(), equals({}));
+ expect(() => makeDatum(3).asStringListMap(), _throwsInvalidParameter);
}
}
« pkg/analysis_server/lib/src/protocol.dart ('K') | « pkg/analysis_server/lib/src/protocol.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698