summaryrefslogtreecommitdiff
path: root/fxjs
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-05-25 16:12:59 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-25 16:12:59 +0000
commit4ba76201df61467928bba429ea1d8115e292072e (patch)
tree3c440b2d0eb09b7a4d3193033bcc96f0a7e20b9d /fxjs
parenta2bb072a69b29695242a81e4b75c19c14c39acfb (diff)
downloadpdfium-4ba76201df61467928bba429ea1d8115e292072e.tar.xz
[xfa] Add missing xfa.event.cancelAction property
This CL adds the missing cancleAction property from the xfa.event object. Bug: 1066 Change-Id: I7d38956e2985c1f6ac0eba6de090874f1f72003c Reviewed-on: https://pdfium-review.googlesource.com/32950 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'fxjs')
-rw-r--r--fxjs/cfxjse_formcalc_context_embeddertest.cpp19
-rw-r--r--fxjs/xfa/cjx_eventpseudomodel.cpp6
-rw-r--r--fxjs/xfa/cjx_eventpseudomodel.h1
3 files changed, 26 insertions, 0 deletions
diff --git a/fxjs/cfxjse_formcalc_context_embeddertest.cpp b/fxjs/cfxjse_formcalc_context_embeddertest.cpp
index ba39182364..4b9d93a660 100644
--- a/fxjs/cfxjse_formcalc_context_embeddertest.cpp
+++ b/fxjs/cfxjse_formcalc_context_embeddertest.cpp
@@ -1554,3 +1554,22 @@ TEST_F(CFXJSE_FormCalcContextEmbedderTest, EventChangeSelection) {
EXPECT_EQ(4, context->GetEventParam()->m_iSelStart);
EXPECT_EQ(4, context->GetEventParam()->m_iSelEnd);
}
+
+TEST_F(CFXJSE_FormCalcContextEmbedderTest, XFAEventCancelAction) {
+ ASSERT_TRUE(OpenDocument("simple_xfa.pdf"));
+
+ CXFA_EventParam params;
+ params.m_bCancelAction = false;
+
+ CFXJSE_Engine* context = GetScriptContext();
+ context->SetEventParam(params);
+
+ EXPECT_TRUE(Execute("xfa.event.cancelAction"));
+
+ CFXJSE_Value* value = GetValue();
+ EXPECT_TRUE(value->IsBoolean());
+ EXPECT_FALSE(value->ToBoolean());
+
+ EXPECT_TRUE(Execute("xfa.event.cancelAction = \"true\""));
+ EXPECT_TRUE(context->GetEventParam()->m_bCancelAction);
+}
diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp
index 0dea7153b7..82b76fce12 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.cpp
+++ b/fxjs/xfa/cjx_eventpseudomodel.cpp
@@ -56,6 +56,12 @@ CJX_EventPseudoModel::CJX_EventPseudoModel(CScript_EventPseudoModel* model)
CJX_EventPseudoModel::~CJX_EventPseudoModel() {}
+void CJX_EventPseudoModel::cancelAction(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Property(pValue, XFA_Event::CancelAction, bSetting);
+}
+
void CJX_EventPseudoModel::change(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h
index 92d731c289..5d8bcc3060 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.h
+++ b/fxjs/xfa/cjx_eventpseudomodel.h
@@ -41,6 +41,7 @@ class CJX_EventPseudoModel : public CJX_Object {
JS_METHOD(emit, CJX_EventPseudoModel);
JS_METHOD(reset, CJX_EventPseudoModel);
+ JS_PROP(cancelAction);
JS_PROP(change);
JS_PROP(commitKey);
JS_PROP(fullText);