summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc/dictionary-helper.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webrtc/dictionary-helper.js')
-rw-r--r--testing/web-platform/tests/webrtc/dictionary-helper.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webrtc/dictionary-helper.js b/testing/web-platform/tests/webrtc/dictionary-helper.js
new file mode 100644
index 0000000000..dab7e49fad
--- /dev/null
+++ b/testing/web-platform/tests/webrtc/dictionary-helper.js
@@ -0,0 +1,101 @@
+'use strict';
+
+// Helper assertion functions to validate dictionary fields
+// on dictionary objects returned from APIs
+
+function assert_unsigned_int_field(object, field) {
+ const num = object[field];
+ assert_true(Number.isInteger(num) && (num >= 0),
+ `Expect dictionary.${field} to be unsigned integer`);
+}
+
+function assert_int_field(object, field) {
+ const num = object[field];
+ assert_true(Number.isInteger(num),
+ `Expect dictionary.${field} to be integer`);
+}
+
+function assert_string_field(object, field) {
+ const str = object[field];
+ assert_equals(typeof str, 'string',
+ `Expect dictionary.${field} to be string`);
+}
+
+function assert_number_field(object, field) {
+ const num = object[field];
+ assert_equals(typeof num, 'number',
+ `Expect dictionary.${field} to be number`);
+}
+
+function assert_boolean_field(object, field) {
+ const bool = object[field];
+ assert_equals(typeof bool, 'boolean',
+ `Expect dictionary.${field} to be boolean`);
+}
+
+function assert_array_field(object, field) {
+ assert_true(Array.isArray(object[field]),
+ `Expect dictionary.${field} to be array`);
+}
+
+function assert_dict_field(object, field) {
+ assert_equals(typeof object[field], 'object',
+ `Expect dictionary.${field} to be plain object`);
+
+ assert_not_equals(object[field], null,
+ `Expect dictionary.${field} to not be null`);
+}
+
+function assert_enum_field(object, field, validValues) {
+ assert_string_field(object, field);
+ assert_true(validValues.includes(object[field]),
+ `Expect dictionary.${field} to have one of the valid enum values: ${validValues}`);
+}
+
+function assert_optional_unsigned_int_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_unsigned_int_field(object, field);
+ }
+}
+
+function assert_optional_int_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_int_field(object, field);
+ }
+}
+
+function assert_optional_string_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_string_field(object, field);
+ }
+}
+
+function assert_optional_number_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_number_field(object, field);
+ }
+}
+
+function assert_optional_boolean_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_boolean_field(object, field);
+ }
+}
+
+function assert_optional_array_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_array_field(object, field);
+ }
+}
+
+function assert_optional_dict_field(object, field) {
+ if(object[field] !== undefined) {
+ assert_dict_field(object, field);
+ }
+}
+
+function assert_optional_enum_field(object, field, validValues) {
+ if(object[field] !== undefined) {
+ assert_enum_field(object, field, validValues);
+ }
+}