| Index: testing/resources/javascript/globals.in
|
| diff --git a/testing/resources/javascript/globals.in b/testing/resources/javascript/globals.in
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6d2f3ca2414eb8bd3fceb1f3ff71962157eccf21
|
| --- /dev/null
|
| +++ b/testing/resources/javascript/globals.in
|
| @@ -0,0 +1,137 @@
|
| +{{header}}
|
| +{{object 1 0}} <<
|
| + /Type /Catalog
|
| + /Pages 2 0 R
|
| + /OpenAction 10 0 R
|
| +>>
|
| +endobj
|
| +{{object 2 0}} <<
|
| + /Type /Pages
|
| + /Count 1
|
| + /Kids [
|
| + 3 0 R
|
| + ]
|
| +>>
|
| +endobj
|
| +% Page number 0.
|
| +{{object 3 0}} <<
|
| + /Type /Page
|
| + /Parent 2 0 R
|
| + /Resources <<
|
| + /Font <</F1 15 0 R>>
|
| + >>
|
| + /Contents [21 0 R]
|
| + /MediaBox [0 0 612 792]
|
| +>>
|
| +% OpenAction action
|
| +{{object 10 0}} <<
|
| + /Type /Action
|
| + /S /JavaScript
|
| + /JS 11 0 R
|
| +>>
|
| +endobj
|
| +% JS program to exexute
|
| +{{object 11 0}} <<
|
| +>>
|
| +stream
|
| +// The "global" object stores data in a C-like manner, and
|
| +// can theoretically persist them between sessions (though
|
| +// pdfium deliberately excludes that functionality).
|
| +
|
| +var some_object = { "colors": [ "red", "green", "blue"] };
|
| +
|
| +var props_to_test = [
|
| + // Cover both bool values.
|
| + { "name": "true_var", "value": true },
|
| + { "name": "false_var", "value": false },
|
| +
|
| + // Include both zero and a number with some fractional digits.
|
| + { "name": "zero_var", "value": 0 },
|
| + { "name": "number_var", "value": -3.918 },
|
| +
|
| + // TODO(tsepez): unicode doesn't seem to survive.
|
| + { "name": "string_var", "value": "This is a string" },
|
| +
|
| + // Try a complex object.
|
| + { "name": "object_var", "value": some_object },
|
| +
|
| + // Test null and undefined.
|
| + { "name": "null_var", "value": null },
|
| + { "name": "undefined_var", "value": undefined }
|
| +];
|
| +
|
| +function setup_global() {
|
| + for (var i = 0; i < props_to_test.length; ++i) {
|
| + var prop = props_to_test[i];
|
| + global[prop.name] = prop.value;
|
| + }
|
| +}
|
| +
|
| +function delete_global() {
|
| + for (var i = 0; i < props_to_test.length; ++i) {
|
| + var prop = props_to_test[i];
|
| + delete global[prop.name];
|
| + }
|
| +}
|
| +
|
| +function persist_global(should_persist) {
|
| + for (var i = 0; i < props_to_test.length; ++i) {
|
| + var prop = props_to_test[i];
|
| + global.setPersistent(prop.name, should_persist);
|
| + }
|
| +}
|
| +
|
| +function dump_global(msg) {
|
| + app.alert("************ " + msg + " ************");
|
| + app.alert("Enumerable Globals:");
|
| + for (var name in global) {
|
| + app.alert(" " + name + " = " + global[name] +
|
| + ", own property = " + global.hasOwnProperty(name));
|
| + }
|
| + app.alert("Expected Globals:");
|
| + for (var i = 0; i < props_to_test.length; ++i) {
|
| + var prop = props_to_test[i];
|
| + var actual = global[prop.name];
|
| + app.alert(" " + prop.name + " = " + actual);
|
| + if (actual != null && typeof actual == "object") {
|
| + app.alert(" " + actual.colors[0]);
|
| + app.alert(" " + actual.colors[1]);
|
| + app.alert(" " + actual.colors[2]);
|
| + }
|
| + }
|
| +}
|
| +
|
| +dump_global("Initial State");
|
| +
|
| +// Check that they all exist.
|
| +setup_global();
|
| +dump_global("After Setup");
|
| +
|
| +// Test deletion.
|
| +delete_global();
|
| +dump_global("After Deletion");
|
| +
|
| +// setPersistent() should be a no-op for pdfium.
|
| +setup_global();
|
| +persist_global(false);
|
| +dump_global("After Setup and Persist false");
|
| +
|
| +// Test setting deleted variables as persistent.
|
| +delete_global();
|
| +persist_global(true);
|
| +dump_global("After Delete and Persist");
|
| +
|
| +// Exit with variables marked as persistent to test whatever path
|
| +// may exist to persist them (should be igonored on pdfium).
|
| +setup_global();
|
| +persist_global(true);
|
| +dump_global("After Setup and Persist true");
|
| +
|
| +endstream
|
| +endobj
|
| +{{xref}}
|
| +trailer <<
|
| + /Root 1 0 R
|
| +>>
|
| +{{startxref}}
|
| +%%EOF
|
|
|