xref: /aosp_15_r20/external/pdfium/testing/resources/javascript/xfa_specific/xfa_node.in (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1{{header}}
2{{include ../../xfa_catalog_1_0.fragment}}
3{{include ../../xfa_object_2_0.fragment}}
4{{include ../../xfa_preamble_3_0.fragment}}
5{{include ../../xfa_config_4_0.fragment}}
6{{object 5 0}} <<
7  {{streamlen}}
8>>
9stream
10<goop viscosity="sludge">Spurious Nonsense</goop>
11<template>
12  <subform layout="tb" name="my_doc">
13    <pageSet id="page" relation="orderedOccurrence">
14      <occur initial="1" max="1" min="1"/>
15      <pageArea id="Page1" name="Page1">
16        <occur max="1" min="1"/>
17        <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
18      </pageArea>
19      <pageArea id="Page2" name="Page2">
20        <occur max="1" min="1"/>
21        <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
22      </pageArea>
23    </pageSet>
24    <event activity="docReady" ref="$host">
25      <script contentType="application/x-javascript"><![CDATA[
26        {{include ../expect.js}}
27        {{include ../property_test_helpers.js}}
28        {{include dump_tree.js}}
29
30        dumpTree(xfa);
31
32        testROProperty(my_doc, "isContainer", true);
33        testROProperty(my_doc, "isNull", false);
34        testROProperty(my_doc, "model", "[object XFAObject]");
35        testROProperty(my_doc, "ns", "");
36        testROProperty(my_doc, "oneOfChild", false);
37        expect("typeof my_doc.applyXSL", "function");
38        expect("typeof my_doc.assignNode", "function");
39        expect("typeof my_doc.clone", "function");
40        expect("typeof my_doc.getAttribute", "function");
41        expect("typeof my_doc.getElement", "function");
42        expect("typeof my_doc.isPropertySpecified", "function");
43        expect("typeof my_doc.loadXML", "function");
44        expect("typeof my_doc.saveFilteredXML", "function");
45        expect("typeof my_doc.saveXML", "function");
46        expect("typeof my_doc.setAttribute", "function");
47        expect("typeof my_doc.setElement", "function");
48        expectError("my_doc.applyXSL()");
49        expect("my_doc.applyXSL(42)", undefined);
50        expectError("my_doc.assignNode()");
51        expect("my_doc.assignNode(42)", undefined);
52        expectError("my_doc.clone()");
53        expect("my_doc.clone(true)", "[object XFAObject]");
54        expect("my_doc.clone(false)", "[object XFAObject]");
55        expectError("my_doc.getAttribute()");
56        expect("my_doc.getAttribute('bogus')", "");
57        expect("my_doc.getAttribute('layout')", "tb");
58        expectError("my_doc.getElement()");
59        expect("my_doc.getElement('bogus')", undefined);
60        expect("my_doc.getElement('pageSet')", "[object XFAObject]");
61        expectError("my_doc.isPropertySpecified()");
62        expect("my_doc.isPropertySpecified('bogus')", false);
63        expect("my_doc.isPropertySpecified('pageSet')", true);
64        expectError("my_doc.loadXML()");
65        expect("my_doc.loadXML('bogus')", undefined);
66        expect("my_doc.loadXML('\u003cpageSet\u003e\u003d/pageSet\u003e')", undefined);
67        expect("my_doc.saveFilteredXML('undefined', 'regardless', 'of', 'args')", undefined);
68        expect("my_doc.saveXML().length > 9000", true);          // Really long string.
69        expect("my_doc.saveXML('pretty').length > 9000", true);  // Really long string.
70        expectError("my_doc.saveXML('bogus')");
71        expectError("my_doc.setAttribute()");
72        expectError("my_doc.setElement()");
73        expect("my_doc.setElement('ns', 'something')", undefined);
74
75        // Test setting attributes in the XFA schema.
76        expect("my_doc.setAttribute('something', 'ns')", undefined);
77        expect("my_doc.getAttribute('ns')", 'something');
78
79        // Test free-form attributes outside of the XFA schema.
80        expect("my_doc.setAttribute('fake_value', 'fake_attr')", undefined);
81        expect("my_doc.getAttribute('fake_attr')", 'fake_value');
82
83        // Test magic "xfa" property bound to all nodes.
84        expect("my_doc.xfa == xfa", true);
85
86        // Test "packet" nodes which are unrecognized tags at XDP level.
87        expect("goop", undefined);
88        var goop = this.resolveNode('#packet');
89        expect("goop.className", "packet");
90        expect("goop.viscosity", undefined);
91        expectError("goop.getAttribute()");
92        expectError("goop.getAttribute(1, 2)");
93        expect("goop.getAttribute('nonesuch')", "");
94        expect("goop.getAttribute('viscosity')", "sludge");
95        expectError("goop.setAttribute()");
96        expectError("goop.setAttribute(1)");
97        expectError("goop.setAttribute(1, 2, 3)");
98
99        // Remember, args to setAttribute() are backwards from what one might
100        // typically expect ...
101        expect("goop.setAttribute(7, 'ph')", undefined);
102        expect("goop.getAttribute('ph')", 7);
103
104        expect("goop.content", "Spurious Nonsense");
105        expect("goop.content = ' for All'", " for All");
106
107        // TODO(tsepez): assigning new content seems to append although it
108        // wasn't included in the return value of the assignment above.
109        expect("goop.content", "Spurious Nonsense for All");
110      ]]></script>
111    </event>
112  </subform>
113</template>
114endstream
115endobj
116{{include ../../xfa_locale_6_0.fragment}}
117{{include ../../xfa_postamble_7_0.fragment}}
118{{include ../../xfa_pages_8_0.fragment}}
119{{xref}}
120{{trailer}}
121{{startxref}}
122%%EOF
123