summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-03-02 12:18:50 -0800
committerTom Sepez <tsepez@chromium.org>2015-03-02 12:18:50 -0800
commitb720d0a14601f1496ef15297bc46d401f5a2a890 (patch)
treed19c5604c1528646d992ffcd1beabe8279d5d4b3 /testing
parent944ccad72d028ed5e37f53c5c8c0888866905bc3 (diff)
downloadpdfium-b720d0a14601f1496ef15297bc46d401f5a2a890.tar.xz
Return error information from pdfium to JS.
This implements the previously unimplemented JS_Error() function. Along the way: - fix some IWYU when the include order in global.cpp was perturbed. - remove some uses of JS_ErrorString, to increase transparency. - use vp.IsSetting() in place of !vp.IsGetting() for clarity. - specify an error string on several error return paths. - add an error string for writing readonly properties. - rename an error string constant to reflect the actual message. - replace calls to variadic Format() with a function doing string appends. - remove unused JS_GetClassName() R=thestig@chromium.org Review URL: https://codereview.chromium.org/963193003
Diffstat (limited to 'testing')
-rw-r--r--testing/resources/javascript/document_props.in30
-rw-r--r--testing/resources/javascript/document_props_expected.txt12
-rw-r--r--testing/resources/javascript/globals.in44
-rw-r--r--testing/resources/javascript/globals_expected.txt10
4 files changed, 64 insertions, 32 deletions
diff --git a/testing/resources/javascript/document_props.in b/testing/resources/javascript/document_props.in
index 8ab7e3d566..c628fafad2 100644
--- a/testing/resources/javascript/document_props.in
+++ b/testing/resources/javascript/document_props.in
@@ -105,27 +105,27 @@ var document_props = [
];
function testGetProps(props) {
- try {
- app.alert('*** Getting properties ***');
- for (var i = 0; i < props.length; ++i) {
- var expr1 = "this." + props[i];
- var expr2 = "typeof " + expr1;
- app.alert(expr1 + " is " + eval(expr2) + ' ' + eval(expr1));
+ app.alert('*** Getting properties ***');
+ for (var i = 0; i < props.length; ++i) {
+ try {
+ var expr1 = "this." + props[i];
+ var expr2 = "typeof " + expr1;
+ app.alert(expr1 + " is " + eval(expr2) + ' ' + eval(expr1));
+ } catch (e) {
+ app.alert("ERROR: " + e.toString());
}
- } catch (e) {
- app.alert("ERROR: " + e.toString());
}
}
function testSetProps(props) {
- try {
- app.alert('*** Setting properties ***');
- for (var i = 0; i < props.length; ++i) {
- var expr1 = "this." + props[i] + ' = 3;'
- app.alert(expr1 + " yields " + eval(expr1));
+ app.alert('*** Setting properties ***');
+ for (var i = 0; i < props.length; ++i) {
+ try {
+ var expr1 = "this." + props[i] + ' = 3;'
+ app.alert(expr1 + " yields " + eval(expr1));
+ } catch (e) {
+ app.alert("ERROR: " + e.toString());
}
- } catch (e) {
- app.alert("ERROR: " + e.toString());
}
}
diff --git a/testing/resources/javascript/document_props_expected.txt b/testing/resources/javascript/document_props_expected.txt
index 38bea97acb..728d2455e1 100644
--- a/testing/resources/javascript/document_props_expected.txt
+++ b/testing/resources/javascript/document_props_expected.txt
@@ -41,10 +41,10 @@ Alert: this.creationDate = 3; yields 3
Alert: this.creator = 3; yields 3
Alert: this.delay = 3; yields 3
Alert: this.dirty = 3; yields 3
-Alert: this.documentFileName = 3; yields 3
+Alert: ERROR: Document.documentFileName: Cannot assign to readonly property.
Alert: this.external = 3; yields 3
-Alert: this.filesize = 3; yields 3
-Alert: this.icons = 3; yields 3
+Alert: ERROR: Document.filesize: Cannot assign to readonly property.
+Alert: ERROR: Document.icons: Cannot assign to readonly property.
Alert: this.info = 3; yields 3
Alert: this.keywords = 3; yields 3
Alert: this.layout = 3; yields 3
@@ -52,12 +52,12 @@ Alert: this.media = 3; yields 3
Alert: this.modDate = 3; yields 3
Alert: this.mouseX = 3; yields 3
Alert: this.mouseY = 3; yields 3
-Alert: this.numFields = 3; yields 3
-Alert: this.numPages = 3; yields 3
+Alert: ERROR: Document.numFields: Cannot assign to readonly property.
+Alert: ERROR: Document.numPages: Cannot assign to readonly property.
Goto Page: 3
Alert: this.pageNum = 3; yields 3
Alert: this.pageWindowRect = 3; yields 3
-Alert: this.path = 3; yields 3
+Alert: ERROR: Document.path: Cannot assign to readonly property.
Alert: this.producer = 3; yields 3
Alert: this.subject = 3; yields 3
Alert: this.title = 3; yields 3
diff --git a/testing/resources/javascript/globals.in b/testing/resources/javascript/globals.in
index 6d2f3ca241..4812101e7a 100644
--- a/testing/resources/javascript/globals.in
+++ b/testing/resources/javascript/globals.in
@@ -63,21 +63,34 @@ var props_to_test = [
function setup_global() {
for (var i = 0; i < props_to_test.length; ++i) {
var prop = props_to_test[i];
- global[prop.name] = prop.value;
+ try {
+ global[prop.name] = prop.value;
+ } catch (e) {
+ app.alert("For " + prop.name + ": Setup: ERROR: " + e.toString());
+ }
}
}
function delete_global() {
for (var i = 0; i < props_to_test.length; ++i) {
var prop = props_to_test[i];
- delete global[prop.name];
+ try {
+ delete global[prop.name];
+ } catch (e) {
+ app.alert("For " + prop.name + ": Delete: ERROR: " + e.toString());
+ }
}
}
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);
+ try {
+ global.setPersistent(prop.name, should_persist);
+ } catch (e) {
+ app.alert("For " + prop.name +
+ ": Set Persistent: ERROR: " + e.toString());
+ }
}
}
@@ -85,18 +98,27 @@ 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));
+ try {
+ app.alert(" " + name + " = " + global[name] +
+ ", own property = " + global.hasOwnProperty(name));
+ } catch (e) {
+ app.alert("For " + name + ": Dump: ERROR: " + e.toString());
+ }
}
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]);
+ try {
+ 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]);
+ }
+ } catch (e) {
+ app.alert("For " + prop.name +
+ ": Dump Expected: ERROR: " + e.toString());
}
}
}
diff --git a/testing/resources/javascript/globals_expected.txt b/testing/resources/javascript/globals_expected.txt
index ddaa00cd09..fcebd70466 100644
--- a/testing/resources/javascript/globals_expected.txt
+++ b/testing/resources/javascript/globals_expected.txt
@@ -45,6 +45,7 @@ Alert: string_var = undefined
Alert: object_var = undefined
Alert: null_var = undefined
Alert: undefined_var = undefined
+Alert: For undefined_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
Alert: ************ After Setup and Persist false ************
Alert: Enumerable Globals:
Alert: setPersistent = function setPersistent() { [native code] }, own property = true
@@ -68,6 +69,14 @@ Alert: green
Alert: blue
Alert: null_var = null
Alert: undefined_var = undefined
+Alert: For true_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For false_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For zero_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For number_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For string_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For object_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For null_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
+Alert: For undefined_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
Alert: ************ After Delete and Persist ************
Alert: Enumerable Globals:
Alert: setPersistent = function setPersistent() { [native code] }, own property = true
@@ -80,6 +89,7 @@ Alert: string_var = undefined
Alert: object_var = undefined
Alert: null_var = undefined
Alert: undefined_var = undefined
+Alert: For undefined_var: Set Persistent: ERROR: global.setPersistent: Global value not found.
Alert: ************ After Setup and Persist true ************
Alert: Enumerable Globals:
Alert: setPersistent = function setPersistent() { [native code] }, own property = true