summaryrefslogtreecommitdiff
path: root/sw/qa
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2022-11-15 09:53:20 +0100
committerMiklos Vajna <vmiklos@collabora.com>2022-11-15 11:34:49 +0100
commit6870c0c3385bf5d19e9c80bf973fca255ae38c08 (patch)
tree9abcb20a38b24b620b3380c053ae0aa47bc7172e /sw/qa
parent1caf3f2554ffac3624d43defb4252a5b40945bbc (diff)
sw: add new FieldCode parameter for the .uno:TextFormField command
The field code/command is the input of the field expand. Also allow setting a field result, given that the entire point of "unhandled" fieldmarks is that Writer itself doesn't know how to compute the field result / expanded string. Note that a field result can be a multi-paragraph and formatted content, so far we only allow single-paragraph plain text. Change-Id: I1739cb985d1d4ed8e45068f15a4e0d82fd118d83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142726 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'sw/qa')
-rw-r--r--sw/qa/uibase/shells/shells.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/sw/qa/uibase/shells/shells.cxx b/sw/qa/uibase/shells/shells.cxx
index c107913e6469..803c41657e89 100644
--- a/sw/qa/uibase/shells/shells.cxx
+++ b/sw/qa/uibase/shells/shells.cxx
@@ -277,8 +277,12 @@ CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testInsertTextFormField)
SwDoc* pDoc = getSwDoc();
// When inserting an ODF_UNHANDLED fieldmark:
+ OUString aExpectedCommand("ADDIN ZOTERO_BIBL foo bar");
+ OUString aExpectedResult("(Abrikosov, n.d.)");
uno::Sequence<css::beans::PropertyValue> aArgs = {
comphelper::makePropertyValue("FieldType", uno::Any(OUString(ODF_UNHANDLED))),
+ comphelper::makePropertyValue("FieldCommand", uno::Any(aExpectedCommand)),
+ comphelper::makePropertyValue("FieldResult", uno::Any(aExpectedResult)),
};
dispatchCommand(mxComponent, ".uno:TextFormField", aArgs);
@@ -294,6 +298,15 @@ CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testInsertTextFormField)
// - Actual : vnd.oasis.opendocument.field.FORMTEXT
// i.e. the custom type parameter was ignored.
CPPUNIT_ASSERT_EQUAL(OUString(ODF_UNHANDLED), pFieldmark->GetFieldname());
+
+ auto it = pFieldmark->GetParameters()->find(ODF_CODE_PARAM);
+ CPPUNIT_ASSERT(it != pFieldmark->GetParameters()->end());
+ OUString aActualCommand;
+ it->second >>= aActualCommand;
+ CPPUNIT_ASSERT_EQUAL(aExpectedCommand, aActualCommand);
+
+ OUString aActualResult = pFieldmark->GetContent();
+ CPPUNIT_ASSERT_EQUAL(aExpectedResult, aActualResult);
}
CPPUNIT_PLUGIN_IMPLEMENT();