diff options
-rw-r--r-- | fpdfsdk/src/javascript/app.cpp | 23 | ||||
-rw-r--r-- | testing/resources/javascript/app_props.in | 85 | ||||
-rw-r--r-- | testing/resources/javascript/app_props_expected.txt | 40 |
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 |