summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/infrastructure/channels/test_serialize.html
blob: 88a9ce5221dcf90ad7c064b6e135ba5e1b37da4f (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
<!DOCTYPE html>
<meta charset="utf-8">
<title>object serialization</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/channel.sub.js"></script>
<script src="serialize-data.js"></script>

<script>
setup(() => {
    remote = new RemoteGlobal();

    let url = `serialize_child.html?uuid=${remote.uuid}`;
    win = window.open(url);
});

for (let [name, obj] of Object.entries(objects)) {
    promise_test(async t => {
        let result = await remote.call(
            (name, inputValue) => compareResult(name, inputValue),
            name,
            obj.input);
        assert_true(result);
    }, `Serialize ${name}`);
}

promise_test(async t => {
    let remoteValue = RemoteObject.from(document.head);
    let result = await remote.call(inputValue => {
        if (!inputValue instanceof RemoteObject) {
            throw new AssertionError(`Expected RemoteObject`);
        }
        return inputValue;
    }, remoteValue);
    assert_equals(result, document.head);
}, "Serialize RemoteObject");

</script>