diff options
Diffstat (limited to 'testing/resources/javascript/field_properties.in')
-rw-r--r-- | testing/resources/javascript/field_properties.in | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/testing/resources/javascript/field_properties.in b/testing/resources/javascript/field_properties.in new file mode 100644 index 0000000000..4b54cbc17b --- /dev/null +++ b/testing/resources/javascript/field_properties.in @@ -0,0 +1,249 @@ +{{header}} +{{object 1 0}} << + /Type /Catalog + /Pages 2 0 R + /AcroForm 4 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 + /MediaBox [0 0 612 792] +>> +endobj +% Forms +{{object 4 0}} << + /Fields [5 0 R] +>> +endobj +% Fields +{{object 5 0}} << + /T (MyField) + /Type /Annot + /Subtype /Widget + /Rect [100 100 400 400] + /Kids [ + 6 0 R + 7 0 R + 8 0 R + 9 0 R + ] +>> +endobj +{{object 6 0}} << + /FT /Tx + /Parent 5 0 R + /T (Sub_X) + /Type /Annot + /Subtype /Widget + /Rect [200 200 220 220] +>> +endobj +{{object 7 0}} << + /FT /Tx + /Parent 5 0 R + /T (Sub_A) + /Type /Annot + /Subtype /Widget + /Rect [220 220 240 240] +>> +endobj +{{object 8 0}} << + /FT /Tx + /Parent 5 0 R + /T (Sub_Z) + /Type /Annot + /Subtype /Widget + /Rect [240 240 260 260] +>> +endobj +{{object 9 0}} << + /FT /Tx + /Parent 5 0 R + /T (Sub_B) + /Type /Annot + /Subtype /Widget + /Rect [260 260 280 280] +>> +endobj +% OpenAction action +{{object 10 0}} << + /Type /Action + /S /JavaScript + /JS 11 0 R +>> +endobj +% JS program to exexute +{{object 11 0}} << + {{streamlen}} +>> +stream +function testReadProperty(field, prop, expected) { + try { + var actual = field[prop]; + if (actual == expected) { + app.alert('PASS: ' + prop + ' = ' + actual); + } else { + app.alert('FAIL: ' + prop + ' = ' + actual + ', expected = ' + expected); + } + } catch (e) { + app.alert('ERROR: ' + e.toString()); + } +} + +function testUnreadableProperty(field, prop) { + try { + var value = field[prop]; + app.alert('FAIL: ' + prop + ', expected to throw error'); + } catch (e) { + app.alert('PASS: ' + prop + ' threw error ' + e.toString()); + } +} + +function testWriteProperty(field, prop, newValue) { + try { + field[prop] = newValue; + var actual = field[prop]; + if (actual == newValue) { + app.alert('PASS: ' + prop + ' = ' + actual); + } else { + app.alert('FAIL: ' + prop + ' = ' + actual + ', expected = ' + newValue); + } + } catch (e) { + app.alert('ERROR: ' + e.toString()); + } +} + +function testWriteIgnoredProperty(field, prop, expected, newValue) { + try { + field[prop] = newValue; + var actual = field[prop]; + if (actual == expected) { + app.alert('PASS: ' + prop + ' = ' + actual); + } else { + app.alert('FAIL: ' + prop + ' = ' + actual + ', expected = ' + expected); + } + } catch (e) { + app.alert('ERROR: ' + e.toString()); + } +} + +function testUnwritableProperty(field, prop, newValue) { + try { + field[prop] = newValue; + app.alert('FAIL: ' + prop + ' = ' + newValue + ', expected to throw error'); + } catch (e) { + app.alert('PASS: ' + prop + ' threw error ' + e.toString()); + } +} + +function testRWProperty(field, prop, expected, newValue) { + testReadProperty(field, prop, expected); + testWriteProperty(field, prop, newValue); +} + +function testRIProperty(field, prop, expected, newValue) { + testReadProperty(field, prop, expected); + testWriteIgnoredProperty(field, prop, expected, newValue); +} + +function testROProperty(field, prop, expected) { + testReadProperty(field, prop, expected); + testUnwritableProperty(field, prop, 42); +} + +function testXXProperty(field, prop) { + testUnreadableProperty(field, prop); + testUnwritableProperty(field, prop, 42); +} + +function testProperties() { + try { + var field = this.getField("MyField"); + app.alert('Testing properties under delay'); + testRWProperty(field, "delay", false, true); + // TODO(tsepez): try this case, too. + // testPropertiesCase(field); + app.alert('Testing properties under non-delay'); + testRWProperty(field, "delay", true, false); + testPropertiesCase(field); + } catch (e) { + app.alert("Unexpected error: " + e); + } +} + +function testPropertiesCase(field) { + try { + // TODO(tsepez): devise tests and uncomment. + testRIProperty(field, "alignment", "left", "center"); + // testRWProperty(field, "borderStyle", "solid", "inset"); + // testROProperty(field, "buttonAlignX", "clams"); + // testROProperty(field, "buttonAlignY", "clams"); + // testROProperty(field, "buttonFitBounds", "clams"); + // testROProperty(field, "buttonPosition", "clams"); + // testROProperty(field, "buttonScaleHow", "clams"); + // testROProperty(field, "buttonScaleWhen", "clams"); + testRIProperty(field, "calcOrderIndex", -1, 100); + testRIProperty(field, "charLimit", 0, 100); + testRIProperty(field, "comb", false, true); + // testRIProperty(field, "commitOnSelChange", false, true); + // testROProperty(field, "currentValueIndices", "clams"); + testXXProperty(field, "defaultStyle"); + // testROProperty(field, "defaultValue", "clams"); + testRIProperty(field, "doNotScroll", false, true); + testRIProperty(field, "doNotSpellCheck", false, true); + // testROProperty(field, "display", "clams"); + testROProperty(field, "doc", "[object global]"); + // testROProperty(field, "editable", "clams"); + // testROProperty(field, "exportValues", "clams"); + // testROProperty(field, "hidden", "clams"); + testRIProperty(field, "fileSelect", false, true); + testRIProperty(field, "fillColor", "T", ["RGB", 0, 0, 0]); + // testROProperty(field, "lineWidth", "clams"); + // testROProperty(field, "highlight", "clams"); + testRIProperty(field, "multiline", false, true); + // testROProperty(field, "multipleSelection", "clams"); + testROProperty(field, "name", "MyField"); + // testROProperty(field, "numItems", "clams"); + testROProperty(field, "page", -1); + testRIProperty(field, "password", false, 42); + // testROProperty(field, "print", "clams"); + // testROProperty(field, "radiosInUnison", "clams"); + testRIProperty(field, "readonly", false, true); + // testRWProperty(field, "rect", [0,0,0,0], [0,0,0,0]); + // testROProperty(field, "required", "clams"); + testRIProperty(field, "richText", false, true); + testRIProperty(field, "richValue", undefined, "clams"); + testRIProperty(field, "rotation", 0, 42); + testRIProperty(field, "source", undefined, "clams"); + testRIProperty(field, "strokeColor", "T", ["RGB", 0, 0, 0]); + // testROProperty(field, "style", "clams"); + testRIProperty(field, "submitName", undefined, "clams"); + testRIProperty(field, "textColor", "T", ["RGB", 0, 0, 0]); + // testROProperty(field, "textFont", "clams"); + testRIProperty(field, "textSize", 0, 32); + testROProperty(field, "type", "text"); + testRIProperty(field, "userName", ""); + testRIProperty(field, "value", "", "clams"); + testROProperty(field, "valueAsString", ""); + } catch (e) { + app.alert("Unexpected error: " + e); + } +} +testProperties(); +endstream +endobj +{{xref}} +{{trailer}} +{{startxref}} +%%EOF |