summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpdfsdk/src/javascript/app.cpp23
-rw-r--r--testing/resources/javascript/app_props.in85
-rw-r--r--testing/resources/javascript/app_props_expected.txt40
3 files changed, 127 insertions, 21 deletions
diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp
index c8815a0ca1..4815e4729c 100644
--- a/fpdfsdk/src/javascript/app.cpp
+++ b/fpdfsdk/src/javascript/app.cpp
@@ -18,16 +18,10 @@
static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
CJS_Context* pContext = (CJS_Context*)cc;
- ASSERT(pContext != NULL);
-
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
- ASSERT(pRuntime != NULL);
-
return pRuntime->GetIsolate();
}
-/* ---------------------------- TimerObj ---------------------------- */
-
BEGIN_JS_STATIC_CONST(CJS_TimerObj)
END_JS_STATIC_CONST()
@@ -52,19 +46,14 @@ CJS_Timer* TimerObj::GetTimer() const {
return m_pTimer;
}
-#define JS_STR_VIEWERTYPE_READER L"Reader"
-#define JS_STR_VIEWERTYPE_STANDARD L"Exchange"
+#define JS_STR_VIEWERTYPE L"pdfium"
#define JS_STR_VIEWERVARIATION L"Full"
#define JS_STR_PLATFORM L"WIN"
#define JS_STR_LANGUANGE L"ENU"
-#define JS_STR_VIEWERVERSION 8
-#define JS_STR_VIEWERVERSION_XFA 11
+#define JS_NUM_VIEWERVERSION 8
+#define JS_NUM_VIEWERVERSION_XFA 11
#define JS_NUM_FORMSVERSION 7
-#define JS_FILEPATH_MAXLEN 2000
-
-/* ---------------------------- app ---------------------------- */
-
BEGIN_JS_STATIC_CONST(CJS_App)
END_JS_STATIC_CONST()
@@ -188,7 +177,7 @@ FX_BOOL app::viewerType(IFXJS_Context* cc,
CJS_PropValue& vp,
CFX_WideString& sError) {
if (vp.IsGetting()) {
- vp << L"pdfium";
+ vp << JS_STR_VIEWERTYPE;
return TRUE;
}
@@ -216,9 +205,9 @@ FX_BOOL app::viewerVersion(IFXJS_Context* cc,
CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
CPDFXFA_Document* pDoc = pCurDoc->GetDocument();
if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2)
- vp << JS_STR_VIEWERVERSION_XFA;
+ vp << JS_NUM_VIEWERVERSION_XFA;
else
- vp << JS_STR_VIEWERVERSION;
+ vp << JS_NUM_VIEWERVERSION;
return TRUE;
}
diff --git a/testing/resources/javascript/app_props.in b/testing/resources/javascript/app_props.in
index fb5f9d645f..89511b0b13 100644
--- a/testing/resources/javascript/app_props.in
+++ b/testing/resources/javascript/app_props.in
@@ -7,9 +7,12 @@
endobj
{{object 2 0}} <<
/Type /Pages
- /Count 1
+ /Count 4
/Kids [
3 0 R
+ 4 0 R
+ 5 0 R
+ 6 0 R
]
>>
endobj
@@ -20,9 +23,42 @@ endobj
/Resources <<
/Font <</F1 15 0 R>>
>>
- /Contents [21 0 R]
/MediaBox [0 0 612 792]
>>
+% Page number 1.
+{{object 4 0}} <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <</F1 15 0 R>>
+ >>
+ /MediaBox [0 0 612 792]
+>>
+% Page number 2.
+{{object 5 0}} <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <</F1 15 0 R>>
+ >>
+ /MediaBox [0 0 612 792]
+>>
+% Page number 3.
+{{object 6 0}} <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <</F1 15 0 R>>
+ >>
+ /MediaBox [0 0 612 792]
+>>
+
+% Info
+{{object 9 0}} <<
+ /Author (Joe Random Author)
+ /Creator (Joe Random Creator)
+>>
+endobj
% OpenAction action
{{object 10 0}} <<
/Type /Action
@@ -34,12 +70,55 @@ endobj
{{object 11 0}} <<
>>
stream
-app.alert("app.viewerType property value: " + app.viewerType);
+var app_props = [
+ 'activeDocs',
+ 'calculate',
+ 'formsVersion',
+ 'fs',
+ 'fullscreen',
+ 'language',
+ 'media',
+ 'platform',
+ 'runtimeHighlight',
+ 'viewerType',
+ 'viewerVariation',
+ 'viewerVersion'
+];
+
+function testGetProps(props) {
+ app.alert('*** Getting properties ***');
+ for (var i = 0; i < props.length; ++i) {
+ try {
+ var expr1 = "app." + props[i];
+ var expr2 = "typeof " + expr1;
+ app.alert(expr1 + " is " + eval(expr2) + ' ' + eval(expr1));
+ } catch (e) {
+ app.alert("ERROR: " + e.toString());
+ }
+ }
+}
+
+function testSetProps(props) {
+ app.alert('*** Setting properties ***');
+ for (var i = 0; i < props.length; ++i) {
+ try {
+ var expr1 = "app." + props[i] + ' = 3;'
+ app.alert(expr1 + " yields " + eval(expr1));
+ } catch (e) {
+ app.alert("ERROR: " + e.toString());
+ }
+ }
+}
+
+testGetProps(app_props);
+testSetProps(app_props);
+testGetProps(app_props);
endstream
endobj
{{xref}}
trailer <<
/Root 1 0 R
+ /Info 9 0 R
>>
{{startxref}}
%%EOF
diff --git a/testing/resources/javascript/app_props_expected.txt b/testing/resources/javascript/app_props_expected.txt
index 405f9c8227..6e78ba510b 100644
--- a/testing/resources/javascript/app_props_expected.txt
+++ b/testing/resources/javascript/app_props_expected.txt
@@ -1 +1,39 @@
-Alert: app.viewerType property value: pdfium
+Alert: *** Getting properties ***
+Alert: app.activeDocs is object [object Object]
+Alert: app.calculate is boolean true
+Alert: app.formsVersion is number 7
+Alert: ERROR: app.fs:
+Alert: ERROR: app.fullscreen:
+Alert: app.language is string ENU
+Alert: ERROR: app.media:
+Alert: app.platform is string WIN
+Alert: app.runtimeHighlight is boolean false
+Alert: app.viewerType is string pdfium
+Alert: app.viewerVariation is string Full
+Alert: app.viewerVersion is number 8
+Alert: *** Setting properties ***
+Alert: ERROR: app.activeDocs:
+Alert: app.calculate = 3; yields 3
+Alert: ERROR: app.formsVersion:
+Alert: ERROR: app.fs:
+Alert: ERROR: app.fullscreen:
+Alert: ERROR: app.language:
+Alert: ERROR: app.media:
+Alert: ERROR: app.platform:
+Alert: app.runtimeHighlight = 3; yields 3
+Alert: ERROR: app.viewerType:
+Alert: ERROR: app.viewerVariation:
+Alert: ERROR: app.viewerVersion:
+Alert: *** Getting properties ***
+Alert: app.activeDocs is object [object Object]
+Alert: app.calculate is boolean true
+Alert: app.formsVersion is number 7
+Alert: ERROR: app.fs:
+Alert: ERROR: app.fullscreen:
+Alert: app.language is string ENU
+Alert: ERROR: app.media:
+Alert: app.platform is string WIN
+Alert: app.runtimeHighlight is boolean true
+Alert: app.viewerType is string pdfium
+Alert: app.viewerVariation is string Full
+Alert: app.viewerVersion is number 8