summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc/dictionary-helper.js
blob: dab7e49fad0ea913d84f8023d4490b08f8415ebb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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);
  }
}