resurrect and improve loplugin:referencecasting
Improve the plugin to avoid generating false+ with the special case of querying XInterface (what the code calls normalisation). Also ignore places where the querying is dealing with ambiguous base classes. Change-Id: I23b2b2fa6618328fafc4707b94c26582a462ea87 Reviewed-on: https://gerrit.libreoffice.org/74993 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
parent
413956ae4c
commit
c4bce5dafd
385
compilerplugins/clang/referencecasting.cxx
Normal file
385
compilerplugins/clang/referencecasting.cxx
Normal file
@ -0,0 +1,385 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* Based on LLVM/Clang.
|
||||
*
|
||||
* This file is distributed under the University of Illinois Open Source
|
||||
* License. See LICENSE.TXT for details.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "plugin.hxx"
|
||||
#include "check.hxx"
|
||||
#include <iostream>
|
||||
|
||||
/*
|
||||
This is a compile-time checker.
|
||||
|
||||
Check for cases where we have
|
||||
- two IDL interfaces A and B,
|
||||
- B extends A
|
||||
- we are converting a Reference<B> to a Reference<A> using UNO_QUERY
|
||||
|
||||
This makes the code simpler and cheaper, because UNO_QUERY can be surprisingly expensive if used a lot.
|
||||
|
||||
*/
|
||||
|
||||
class ReferenceCasting : public loplugin::FilteringPlugin<ReferenceCasting>
|
||||
{
|
||||
public:
|
||||
explicit ReferenceCasting(loplugin::InstantiationData const& data)
|
||||
: FilteringPlugin(data)
|
||||
{
|
||||
}
|
||||
void run() override
|
||||
{
|
||||
std::string fn(handler.getMainFileName());
|
||||
loplugin::normalizeDotDotInFilePath(fn);
|
||||
// macros
|
||||
if (fn == SRCDIR "/dbaccess/source/ui/browser/formadapter.cxx")
|
||||
return;
|
||||
TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
|
||||
}
|
||||
bool VisitCXXConstructExpr(const CXXConstructExpr* cce);
|
||||
bool VisitCXXMemberCallExpr(const CXXMemberCallExpr* mce);
|
||||
|
||||
private:
|
||||
bool CheckForUnnecessaryGet(const Expr*);
|
||||
};
|
||||
|
||||
static const RecordType* extractTemplateType(const clang::Type*);
|
||||
static bool isDerivedFrom(const CXXRecordDecl* subtypeRecord, const CXXRecordDecl* baseRecord);
|
||||
|
||||
bool ReferenceCasting::VisitCXXConstructExpr(const CXXConstructExpr* cce)
|
||||
{
|
||||
// don't bother processing anything in the Reference.h file. Makes my life easier when debugging this.
|
||||
StringRef aFileName = getFileNameOfSpellingLoc(
|
||||
compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(cce)));
|
||||
if (loplugin::isSamePathname(aFileName, SRCDIR "/include/com/sun/star/uno/Reference.h"))
|
||||
return true;
|
||||
if (loplugin::isSamePathname(aFileName, SRCDIR "/include/com/sun/star/uno/Reference.hxx"))
|
||||
return true;
|
||||
|
||||
// look for calls to the Reference<T>(x, UNO_something) constructor
|
||||
auto constructorClass = cce->getConstructor()->getParent();
|
||||
if (!constructorClass->getIdentifier() || constructorClass->getName() != "Reference")
|
||||
return true;
|
||||
|
||||
if (cce->getNumArgs() != 2)
|
||||
return true;
|
||||
|
||||
if (CheckForUnnecessaryGet(cce->getArg(0)))
|
||||
report(DiagnosticsEngine::Warning, "unnecessary get() call", compat::getBeginLoc(cce))
|
||||
<< cce->getSourceRange();
|
||||
|
||||
// ignore the up-casting constructor
|
||||
if (!isa<EnumType>(cce->getConstructor()->getParamDecl(1)->getType()))
|
||||
return true;
|
||||
|
||||
// extract the type parameter passed to the template
|
||||
const RecordType* templateParamType = extractTemplateType(cce->getType().getTypePtr());
|
||||
if (!templateParamType)
|
||||
return true;
|
||||
|
||||
// extract the type of the first parameter passed to the constructor
|
||||
const Expr* constructorArg0 = cce->getArg(0);
|
||||
if (!constructorArg0)
|
||||
return true;
|
||||
|
||||
// drill down the expression tree till we hit the bottom, because at the top, the type is BaseReference
|
||||
const clang::Type* argType;
|
||||
for (;;)
|
||||
{
|
||||
if (auto castExpr = dyn_cast<CastExpr>(constructorArg0))
|
||||
{
|
||||
constructorArg0 = castExpr->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
if (auto matTempExpr = dyn_cast<MaterializeTemporaryExpr>(constructorArg0))
|
||||
{
|
||||
constructorArg0 = matTempExpr->GetTemporaryExpr();
|
||||
continue;
|
||||
}
|
||||
if (auto bindTempExpr = dyn_cast<CXXBindTemporaryExpr>(constructorArg0))
|
||||
{
|
||||
constructorArg0 = bindTempExpr->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
if (auto tempObjExpr = dyn_cast<CXXTemporaryObjectExpr>(constructorArg0))
|
||||
{
|
||||
constructorArg0 = tempObjExpr->getArg(0);
|
||||
continue;
|
||||
}
|
||||
if (auto parenExpr = dyn_cast<ParenExpr>(constructorArg0))
|
||||
{
|
||||
constructorArg0 = parenExpr->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
argType = constructorArg0->getType().getTypePtr();
|
||||
break;
|
||||
}
|
||||
|
||||
const RecordType* argTemplateType = extractTemplateType(argType);
|
||||
if (!argTemplateType)
|
||||
return true;
|
||||
|
||||
CXXRecordDecl* templateParamRD = dyn_cast<CXXRecordDecl>(templateParamType->getDecl());
|
||||
CXXRecordDecl* constructorArgRD = dyn_cast<CXXRecordDecl>(argTemplateType->getDecl());
|
||||
|
||||
// querying for XInterface (instead of doing an upcast) has special semantics,
|
||||
// to check for UNO object equivalence.
|
||||
if (templateParamRD->getName() == "XInterface")
|
||||
return true;
|
||||
|
||||
// XShape is used in UNO aggregates in very "entertaining" ways, which means an UNO_QUERY
|
||||
// can return a completely different object, e.g. see SwXShape::queryInterface
|
||||
if (templateParamRD->getName() == "XShape")
|
||||
return true;
|
||||
|
||||
if (auto declRefExpr = dyn_cast<DeclRefExpr>(cce->getArg(1)))
|
||||
{
|
||||
// no warning expected, used to reject null references
|
||||
if (auto enumConstantDecl = dyn_cast<EnumConstantDecl>(declRefExpr->getDecl()))
|
||||
{
|
||||
if (enumConstantDecl->getName() == "UNO_SET_THROW")
|
||||
return true;
|
||||
if (enumConstantDecl->getName() == "UNO_QUERY_THROW")
|
||||
return true;
|
||||
if (enumConstantDecl->getName() == "SAL_NO_ACQUIRE")
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (constructorArgRD->Equals(templateParamRD)
|
||||
|| isDerivedFrom(constructorArgRD, templateParamRD))
|
||||
{
|
||||
report(DiagnosticsEngine::Warning,
|
||||
"the source reference is already a subtype of the destination reference, just use =",
|
||||
compat::getBeginLoc(cce))
|
||||
<< cce->getSourceRange();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ReferenceCasting::VisitCXXMemberCallExpr(const CXXMemberCallExpr* mce)
|
||||
{
|
||||
// don't bother processing anything in the Reference.h file. Makes my life easier when debugging this.
|
||||
StringRef aFileName = getFileNameOfSpellingLoc(
|
||||
compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(mce)));
|
||||
if (loplugin::isSamePathname(aFileName, SRCDIR "/include/com/sun/star/uno/Reference.h"))
|
||||
return true;
|
||||
if (loplugin::isSamePathname(aFileName, SRCDIR "/include/com/sun/star/uno/Reference.hxx"))
|
||||
return true;
|
||||
|
||||
// look for calls to the Reference<T>.set(x, UNO_QUERY) constructor
|
||||
auto method = mce->getMethodDecl();
|
||||
if (!method || !method->getIdentifier() || method->getName() != "set")
|
||||
return true;
|
||||
if (mce->getNumArgs() != 2)
|
||||
return true;
|
||||
|
||||
auto methodRecordDecl = dyn_cast<ClassTemplateSpecializationDecl>(mce->getRecordDecl());
|
||||
if (!methodRecordDecl || !methodRecordDecl->getIdentifier()
|
||||
|| methodRecordDecl->getName() != "Reference")
|
||||
return true;
|
||||
|
||||
if (CheckForUnnecessaryGet(mce->getArg(0)))
|
||||
report(DiagnosticsEngine::Warning, "unnecessary get() call", compat::getBeginLoc(mce))
|
||||
<< mce->getSourceRange();
|
||||
|
||||
// extract the type parameter passed to the template
|
||||
const RecordType* templateParamType
|
||||
= dyn_cast<RecordType>(methodRecordDecl->getTemplateArgs()[0].getAsType());
|
||||
if (!templateParamType)
|
||||
return true;
|
||||
|
||||
// extract the type of the first parameter passed to the method
|
||||
const Expr* arg0 = mce->getArg(0);
|
||||
if (!arg0)
|
||||
return true;
|
||||
|
||||
// drill down the expression tree till we hit the bottom, because at the top, the type is BaseReference
|
||||
const clang::Type* argType;
|
||||
for (;;)
|
||||
{
|
||||
if (auto castExpr = dyn_cast<CastExpr>(arg0))
|
||||
{
|
||||
arg0 = castExpr->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
if (auto matTempExpr = dyn_cast<MaterializeTemporaryExpr>(arg0))
|
||||
{
|
||||
arg0 = matTempExpr->GetTemporaryExpr();
|
||||
continue;
|
||||
}
|
||||
if (auto bindTempExpr = dyn_cast<CXXBindTemporaryExpr>(arg0))
|
||||
{
|
||||
arg0 = bindTempExpr->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
if (auto tempObjExpr = dyn_cast<CXXTemporaryObjectExpr>(arg0))
|
||||
{
|
||||
arg0 = tempObjExpr->getArg(0);
|
||||
continue;
|
||||
}
|
||||
if (auto parenExpr = dyn_cast<ParenExpr>(arg0))
|
||||
{
|
||||
arg0 = parenExpr->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
argType = arg0->getType().getTypePtr();
|
||||
break;
|
||||
}
|
||||
|
||||
const RecordType* argTemplateType = extractTemplateType(argType);
|
||||
if (!argTemplateType)
|
||||
return true;
|
||||
|
||||
CXXRecordDecl* templateParamRD = dyn_cast<CXXRecordDecl>(templateParamType->getDecl());
|
||||
CXXRecordDecl* methodArgRD = dyn_cast<CXXRecordDecl>(argTemplateType->getDecl());
|
||||
|
||||
// querying for XInterface (instead of doing an upcast) has special semantics,
|
||||
// to check for UNO object equivalence.
|
||||
if (templateParamRD->getName() == "XInterface")
|
||||
return true;
|
||||
|
||||
// XShape is used in UNO aggregates in very "entertaining" ways, which means an UNO_QUERY
|
||||
// can return a completely different object, e.g. see SwXShape::queryInterface
|
||||
if (templateParamRD->getName() == "XShape")
|
||||
return true;
|
||||
|
||||
if (auto declRefExpr = dyn_cast<DeclRefExpr>(mce->getArg(1)))
|
||||
{
|
||||
// no warning expected, used to reject null references
|
||||
if (auto enumConstantDecl = dyn_cast<EnumConstantDecl>(declRefExpr->getDecl()))
|
||||
{
|
||||
if (enumConstantDecl->getName() == "UNO_SET_THROW")
|
||||
return true;
|
||||
if (enumConstantDecl->getName() == "UNO_QUERY_THROW")
|
||||
return true;
|
||||
if (enumConstantDecl->getName() == "SAL_NO_ACQUIRE")
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (methodArgRD->Equals(templateParamRD) || isDerivedFrom(methodArgRD, templateParamRD))
|
||||
{
|
||||
report(DiagnosticsEngine::Warning,
|
||||
"the source reference is already a subtype of the destination reference, just use =",
|
||||
compat::getBeginLoc(mce))
|
||||
<< mce->getSourceRange();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
Check for
|
||||
Reference<T>(x.get(), UNO_QUERY)
|
||||
because sometimes simplifying that means the main purpose of this plugin can kick in.
|
||||
*/
|
||||
bool ReferenceCasting::CheckForUnnecessaryGet(const Expr* expr)
|
||||
{
|
||||
expr = expr->IgnoreImplicit();
|
||||
auto cxxMemberCallExpr = dyn_cast<CXXMemberCallExpr>(expr);
|
||||
if (!cxxMemberCallExpr)
|
||||
return false;
|
||||
auto methodDecl = cxxMemberCallExpr->getMethodDecl();
|
||||
if (!methodDecl)
|
||||
return false;
|
||||
if (!methodDecl->getIdentifier() || methodDecl->getName() != "get")
|
||||
return false;
|
||||
|
||||
if (!loplugin::TypeCheck(expr->getType()).Pointer())
|
||||
return false;
|
||||
if (!loplugin::DeclCheck(methodDecl->getParent()).Class("Reference").Namespace("uno"))
|
||||
return false;
|
||||
|
||||
StringRef aFileName = getFileNameOfSpellingLoc(
|
||||
compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(expr)));
|
||||
if (loplugin::isSamePathname(aFileName, SRCDIR "/cppu/qa/test_reference.cxx"))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static const RecordType* extractTemplateType(const clang::Type* cceType)
|
||||
{
|
||||
// check for passing raw pointer to interface case
|
||||
if (cceType->isPointerType())
|
||||
{
|
||||
auto pointeeType = cceType->getPointeeType();
|
||||
if (auto elaboratedType = dyn_cast<ElaboratedType>(pointeeType))
|
||||
pointeeType = elaboratedType->desugar();
|
||||
if (auto recordType = dyn_cast<RecordType>(pointeeType))
|
||||
return recordType;
|
||||
}
|
||||
|
||||
if (auto elaboratedType = dyn_cast<ElaboratedType>(cceType))
|
||||
cceType = elaboratedType->desugar().getTypePtr();
|
||||
auto cceTST = dyn_cast<TemplateSpecializationType>(cceType);
|
||||
if (!cceTST)
|
||||
return NULL;
|
||||
if (cceTST->getNumArgs() != 1)
|
||||
return NULL;
|
||||
const TemplateArgument& cceTA = cceTST->getArg(0);
|
||||
const clang::Type* templateParamType = cceTA.getAsType().getTypePtr();
|
||||
if (auto elaboratedType = dyn_cast<ElaboratedType>(templateParamType))
|
||||
templateParamType = elaboratedType->desugar().getTypePtr();
|
||||
return dyn_cast<RecordType>(templateParamType);
|
||||
}
|
||||
|
||||
static int derivedFromCount(QualType qt, const CXXRecordDecl* baseRecord);
|
||||
|
||||
static int derivedFromCount(const CXXRecordDecl* subtypeRecord, const CXXRecordDecl* baseRecord)
|
||||
{
|
||||
if (!subtypeRecord->hasDefinition())
|
||||
return 0;
|
||||
int derivedCount = 0;
|
||||
for (auto it = subtypeRecord->bases_begin(); it != subtypeRecord->bases_end(); ++it)
|
||||
{
|
||||
derivedCount += derivedFromCount(it->getType(), baseRecord);
|
||||
if (derivedCount > 1)
|
||||
return derivedCount;
|
||||
}
|
||||
for (auto it = subtypeRecord->vbases_begin(); it != subtypeRecord->vbases_end(); ++it)
|
||||
{
|
||||
derivedCount += derivedFromCount(it->getType(), baseRecord);
|
||||
if (derivedCount > 1)
|
||||
return derivedCount;
|
||||
}
|
||||
return derivedCount;
|
||||
}
|
||||
|
||||
static int derivedFromCount(QualType qt, const CXXRecordDecl* baseRecord)
|
||||
{
|
||||
int derivedCount = 0;
|
||||
auto type = qt.getTypePtr();
|
||||
if (auto elaboratedType = dyn_cast<ElaboratedType>(type))
|
||||
type = elaboratedType->desugar().getTypePtr();
|
||||
if (auto recordType = dyn_cast<RecordType>(type))
|
||||
{
|
||||
if (auto cxxRecordDecl = dyn_cast<CXXRecordDecl>(recordType->getDecl()))
|
||||
{
|
||||
if (cxxRecordDecl->Equals(baseRecord))
|
||||
derivedCount++;
|
||||
derivedCount += derivedFromCount(cxxRecordDecl, baseRecord);
|
||||
}
|
||||
}
|
||||
return derivedCount;
|
||||
}
|
||||
|
||||
/**
|
||||
Implement my own isDerived because we can't always see all the definitions of the classes involved.
|
||||
which will cause an assert with the normal clang isDerivedFrom code.
|
||||
*/
|
||||
static bool isDerivedFrom(const CXXRecordDecl* subtypeRecord, const CXXRecordDecl* baseRecord)
|
||||
{
|
||||
// if there is more than one case, then we have an ambigous conversion, and we can't change the code
|
||||
// to use the upcasting constructor.
|
||||
return derivedFromCount(subtypeRecord, baseRecord) == 1;
|
||||
}
|
||||
|
||||
loplugin::Plugin::Registration<ReferenceCasting> X2("referencecasting");
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
@ -1,195 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* Based on LLVM/Clang.
|
||||
*
|
||||
* This file is distributed under the University of Illinois Open Source
|
||||
* License. See LICENSE.TXT for details.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "referencecasting.hxx"
|
||||
|
||||
#include <clang/AST/Attr.h>
|
||||
#include <iostream>
|
||||
|
||||
namespace loplugin
|
||||
{
|
||||
|
||||
/*
|
||||
This is a compile-time checker.
|
||||
|
||||
Check for cases where we have
|
||||
- two IDL interfaces A and B,
|
||||
- B extends A
|
||||
- we are converting a Reference<B> to a Reference<A>
|
||||
|
||||
Note that it generates the occasional false positive.
|
||||
|
||||
Also, it makes clang3.2 crash on about 4 files in the LO codebase.
|
||||
I have logged a bug here:
|
||||
http://llvm.org/bugs/show_bug.cgi?id=15902
|
||||
|
||||
*/
|
||||
ReferenceCasting::ReferenceCasting( CompilerInstance& compiler )
|
||||
: FilteringPlugin( compiler )
|
||||
{
|
||||
}
|
||||
|
||||
void ReferenceCasting::run()
|
||||
{
|
||||
TraverseDecl( compiler.getASTContext().getTranslationUnitDecl());
|
||||
}
|
||||
|
||||
// This:
|
||||
// static void example_method()
|
||||
// {
|
||||
// css::uno::Reference<B> b;
|
||||
// css::uno::Reference<A>(b, css::uno::UNO_QUERY);
|
||||
// }
|
||||
// Compiles to this AST:
|
||||
// (CompoundStmt 0x205d430 </noel-extra1/libo-clang/compilerplugins/clang/noel1.cxx:17:1, line:20:1>
|
||||
// (DeclStmt 0x20580a8 <line:18:5, col:32>
|
||||
// (0x20530e0 "css::uno::Reference<B> refB =
|
||||
// (CXXConstructExpr 0x2058078 <col:28> 'css::uno::Reference<B>':'class com::sun::star::uno::Reference<class B>''void(void)')"))
|
||||
// (DeclStmt 0x205d418 <line:19:5, col:59>
|
||||
// (0x2058310 "css::uno::Reference<A> refA =
|
||||
// (CXXConstructExpr 0x205d3d8 <col:28, col:58> 'css::uno::Reference<A>':'class com::sun::star::uno::Reference<class A>''void (const class com::sun::star::uno::BaseReference &, enum com::sun::star::uno::UnoReference_Query)'
|
||||
// (ImplicitCastExpr 0x205d3c0 <col:33> 'const class com::sun::star::uno::BaseReference' lvalue <NoOp>
|
||||
// (ImplicitCastExpr 0x205d3a0 <col:33> 'class com::sun::star::uno::BaseReference' lvalue <DerivedToBase (BaseReference)>
|
||||
// (DeclRefExpr 0x20582a0 <col:33> 'css::uno::Reference<B>':'class com::sun::star::uno::Reference<class B>' lvalue Var 0x20530e0 'refB' 'css::uno::Reference<B>':'class com::sun::star::uno::Reference<class B>')))
|
||||
// (DeclRefExpr 0x2058398 <col:39, col:49> 'enum com::sun::star::uno::UnoReference_Query' EnumConstant 0x1831de0 'UNO_QUERY' 'enum com::sun::star::uno::UnoReference_Query'))")))
|
||||
//
|
||||
//
|
||||
// This:
|
||||
// static void example_method1(css::uno::Reference<A>)
|
||||
// {
|
||||
// }
|
||||
// static void example_method2()
|
||||
// {
|
||||
// css::uno::Reference<B> refB;
|
||||
// example_method1(css::uno::Reference<A>(refB, css::uno::UNO_QUERY));
|
||||
// }
|
||||
// Compiles to this AST:
|
||||
// static void example_method1(css::uno::Reference<A>) (CompoundStmt 0x2a74ee8 </noel-extra1/libo-clang/compilerplugins/clang/noel1.cxx:17:1, line:18:1>)
|
||||
// static void example_method2() (CompoundStmt 0x2a7a650 </noel-extra1/libo-clang/compilerplugins/clang/noel1.cxx:21:1, line:24:1>
|
||||
// (DeclStmt 0x2a7a1a8 <line:22:5, col:32>
|
||||
// (0x2a751e0 "css::uno::Reference<B> refB =
|
||||
// (CXXConstructExpr 0x2a7a178 <col:28> 'css::uno::Reference<B>':'class com::sun::star::uno::Reference<class B>''void(void)')"))
|
||||
// (ExprWithCleanups 0x2a7a638 <line:23:5, col:70> 'void'
|
||||
// (CallExpr 0x2a7a570 <col:5, col:70> 'void'
|
||||
// (ImplicitCastExpr 0x2a7a558 <col:5> 'void (*)(css::uno::Reference<A>)' <FunctionToPointerDecay>
|
||||
// (DeclRefExpr 0x2a7a4d8 <col:5> 'void (css::uno::Reference<A>)' lvalue Function 0x2a6ff00 'example_method1' 'void (css::uno::Reference<A>)'))
|
||||
// (CXXBindTemporaryExpr 0x2a7a618 <col:21, col:69> 'css::uno::Reference<A>':'class com::sun::star::uno::Reference<class A>' (CXXTemporary 0x2a7a610)
|
||||
// (CXXConstructExpr 0x2a7a5d8 <col:21, col:69> 'css::uno::Reference<A>':'class com::sun::star::uno::Reference<class A>''void (const Reference<class A> &)' elidable
|
||||
// (MaterializeTemporaryExpr 0x2a7a5c0 <col:21, col:69> 'const Reference<class A>':'const class com::sun::star::uno::Reference<class A>' lvalue
|
||||
// (ImplicitCastExpr 0x2a7a5a8 <col:21, col:69> 'const Reference<class A>':'const class com::sun::star::uno::Reference<class A>' <NoOp>
|
||||
// (CXXBindTemporaryExpr 0x2a7a4b8 <col:21, col:69> 'css::uno::Reference<A>':'class com::sun::star::uno::Reference<class A>' (CXXTemporary 0x2a7a4b0)
|
||||
// (CXXTemporaryObjectExpr 0x2a7a460 <col:21, col:69> 'css::uno::Reference<A>':'class com::sun::star::uno::Reference<class A>''void (const class com::sun::star::uno::BaseReference &, enum com::sun::star::uno::UnoReference_Query)'
|
||||
// (ImplicitCastExpr 0x2a7a448 <col:44> 'const class com::sun::star::uno::BaseReference' lvalue <NoOp>
|
||||
// (ImplicitCastExpr 0x2a7a428 <col:44> 'class com::sun::star::uno::BaseReference' lvalue <DerivedToBase (BaseReference)>
|
||||
// (DeclRefExpr 0x2a7a340 <col:44> 'css::uno::Reference<B>':'class com::sun::star::uno::Reference<class B>' lvalue Var 0x2a751e0 'refB' 'css::uno::Reference<B>':'class com::sun::star::uno::Reference<class B>')))
|
||||
// (DeclRefExpr 0x2a7a398 <col:50, col:60> 'enum com::sun::star::uno::UnoReference_Query' EnumConstant 0x224ee20 'UNO_QUERY' 'enum com::sun::star::uno::UnoReference_Query'))))))))))
|
||||
|
||||
static const Type* extractTemplateType(Expr* cce);
|
||||
|
||||
bool ReferenceCasting::VisitCXXConstructExpr( CXXConstructExpr* cce )
|
||||
{
|
||||
// don't bother processing anything in the Reference.h file. Makes my life easier when debugging this.
|
||||
if( StringRef(compiler.getSourceManager().getPresumedLoc( cce->getSourceRange().getBegin() )).find( "Reference.h" ) != StringRef::npos )
|
||||
return true;
|
||||
|
||||
// look for calls to the Reference<T>(x,UNO_something) constructor
|
||||
if( cce->getConstructor()->getNameInfo().getName().getAsString() != "Reference" )
|
||||
return true;
|
||||
|
||||
if( cce->getNumArgs() != 2 )
|
||||
return true;
|
||||
|
||||
// extract the type parameter passed to the template
|
||||
const Type * templateParamType = extractTemplateType(cce);
|
||||
if ( !templateParamType )
|
||||
return true;
|
||||
|
||||
// extract the type of the first parameter passed to the constructor
|
||||
Expr* constructorArg0 = cce->getArg(0);
|
||||
if( !constructorArg0 )
|
||||
return true;
|
||||
|
||||
// ignore the Reference(XInterface*,...) constructor
|
||||
if( constructorArg0->getType()->isPointerType() )
|
||||
return true;
|
||||
|
||||
// drill down the expression tree till we hit the bottom
|
||||
DeclRefExpr* constructorSubArg2;
|
||||
Expr* constructorArg0SubExpr = constructorArg0;
|
||||
for(;;)
|
||||
{
|
||||
// if we've hit the member expression we want, break
|
||||
constructorSubArg2 = dyn_cast<DeclRefExpr>( constructorArg0SubExpr );
|
||||
if( constructorSubArg2 )
|
||||
break;
|
||||
CastExpr* tmp1 = dyn_cast<CastExpr>( constructorArg0SubExpr );
|
||||
if( tmp1 ) {
|
||||
constructorArg0SubExpr = tmp1->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
MaterializeTemporaryExpr* tmp2 = dyn_cast<MaterializeTemporaryExpr>( constructorArg0SubExpr );
|
||||
if( tmp2 ) {
|
||||
constructorArg0SubExpr = tmp2->GetTemporaryExpr();
|
||||
continue;
|
||||
}
|
||||
CXXBindTemporaryExpr* tmp3 = dyn_cast<CXXBindTemporaryExpr>( constructorArg0SubExpr );
|
||||
if( tmp3 ) {
|
||||
constructorArg0SubExpr = tmp3->getSubExpr();
|
||||
continue;
|
||||
}
|
||||
CXXTemporaryObjectExpr* tmp4 = dyn_cast<CXXTemporaryObjectExpr>( constructorArg0SubExpr );
|
||||
if( tmp4 ) {
|
||||
constructorArg0SubExpr = tmp4->getArg(0);
|
||||
continue;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const Type * tmp3 = extractTemplateType( constructorSubArg2 );
|
||||
if ( !tmp3 )
|
||||
return true;
|
||||
|
||||
const RecordType* templateParamRT = dyn_cast<RecordType>( templateParamType );
|
||||
const RecordType* constructorArgRT = dyn_cast<RecordType>( tmp3 );
|
||||
if( !templateParamRT || !constructorArgRT )
|
||||
return true;
|
||||
|
||||
CXXRecordDecl* templateParamRD = dyn_cast<CXXRecordDecl>( templateParamRT->getDecl() );
|
||||
CXXRecordDecl* constructorArgRD = dyn_cast<CXXRecordDecl>( constructorArgRT->getDecl() );
|
||||
|
||||
if (constructorArgRD->Equals(templateParamRD) || constructorArgRD->isDerivedFrom(templateParamRD))
|
||||
report( DiagnosticsEngine::Warning,
|
||||
"the source reference is already a subtype of the destination reference",
|
||||
cce->getLocStart()) // and the exact position where the message should point
|
||||
<< cce->getSourceRange(); // and the full return statement to highlight (optional)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static const Type* extractTemplateType(Expr* cce)
|
||||
{
|
||||
QualType cceQT = cce->getType();
|
||||
const Type* cceType = cceQT.getTypePtr();
|
||||
const TemplateSpecializationType* cceTST = dyn_cast<TemplateSpecializationType>( cceType );
|
||||
if( !cceTST )
|
||||
return NULL;
|
||||
if( cceTST->getNumArgs() != 1 )
|
||||
return NULL;
|
||||
const TemplateArgument & cceTA = cceTST->getArg(0);
|
||||
QualType templateParamQT = cceTA.getAsType();
|
||||
return templateParamQT.getTypePtr();
|
||||
}
|
||||
|
||||
static Plugin::Registration< ReferenceCasting > X( "referencecasting" );
|
||||
|
||||
} // namespace
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
@ -1,33 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* Based on LLVM/Clang.
|
||||
*
|
||||
* This file is distributed under the University of Illinois Open Source
|
||||
* License. See LICENSE.TXT for details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef REFERENCECASTING_H
|
||||
#define REFERENCECASTING_H
|
||||
|
||||
#include "plugin.hxx"
|
||||
|
||||
namespace loplugin
|
||||
{
|
||||
|
||||
class ReferenceCasting
|
||||
: public FilteringPlugin< ReferenceCasting >
|
||||
{
|
||||
public:
|
||||
explicit ReferenceCasting( CompilerInstance& compiler );
|
||||
virtual void run() override;
|
||||
bool VisitCXXConstructExpr( CXXConstructExpr* cce );
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif // REFERENCECASTING_H
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
150
compilerplugins/clang/test/referencecasting.cxx
Normal file
150
compilerplugins/clang/test/referencecasting.cxx
Normal file
@ -0,0 +1,150 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include "sal/config.h"
|
||||
|
||||
#include "com/sun/star/uno/XInterface.hpp"
|
||||
#include "com/sun/star/io/XStreamListener.hpp"
|
||||
#include "com/sun/star/lang/XTypeProvider.hpp"
|
||||
#include "com/sun/star/lang/XComponent.hpp"
|
||||
#include "cppuhelper/weak.hxx"
|
||||
|
||||
void test1(const css::uno::Reference<css::io::XStreamListener>& a)
|
||||
{
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
css::uno::Reference<css::lang::XEventListener> b(a, css::uno::UNO_QUERY);
|
||||
}
|
||||
|
||||
namespace test2
|
||||
{
|
||||
css::uno::Reference<css::io::XStreamListener> getListener();
|
||||
|
||||
void test()
|
||||
{
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
css::uno::Reference<css::lang::XEventListener> b(getListener(), css::uno::UNO_QUERY);
|
||||
}
|
||||
}
|
||||
|
||||
namespace test3
|
||||
{
|
||||
void callListener(css::uno::Reference<css::uno::XInterface> const&);
|
||||
|
||||
void test(css::uno::Reference<css::io::XStreamListener> const& l)
|
||||
{
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
callListener(css::uno::Reference<css::lang::XEventListener>(l, css::uno::UNO_QUERY));
|
||||
}
|
||||
}
|
||||
|
||||
void test4(const css::uno::Reference<css::io::XStreamListener>& a)
|
||||
{
|
||||
// no warning expected, used to reject null references
|
||||
css::uno::Reference<css::lang::XEventListener> b(a, css::uno::UNO_SET_THROW);
|
||||
}
|
||||
|
||||
// no warning expected
|
||||
namespace test5
|
||||
{
|
||||
void test(css::uno::Reference<css::io::XStreamListener> l)
|
||||
{
|
||||
css::uno::Reference<css::uno::XInterface> a = l;
|
||||
}
|
||||
}
|
||||
|
||||
namespace test6
|
||||
{
|
||||
void test(css::uno::Reference<css::io::XStreamListener> l)
|
||||
{
|
||||
css::uno::Reference<css::lang::XEventListener> a;
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
a.set(l, css::uno::UNO_QUERY);
|
||||
}
|
||||
}
|
||||
|
||||
namespace test7
|
||||
{
|
||||
void test(css::uno::Reference<css::io::XStreamListener> l)
|
||||
{
|
||||
// expected-error@+1 {{unnecessary get() call [loplugin:referencecasting]}}
|
||||
css::uno::Reference<css::lang::XEventListener> a(l.get(), css::uno::UNO_QUERY);
|
||||
// expected-error@+1 {{unnecessary get() call [loplugin:referencecasting]}}
|
||||
a.set(l.get(), css::uno::UNO_QUERY);
|
||||
}
|
||||
}
|
||||
|
||||
namespace test8
|
||||
{
|
||||
void test(css::io::XStreamListener* l)
|
||||
{
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
css::uno::Reference<css::lang::XEventListener> a(l, css::uno::UNO_QUERY);
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
a.set(l, css::uno::UNO_QUERY);
|
||||
}
|
||||
}
|
||||
|
||||
// check for looking through casts
|
||||
namespace test9
|
||||
{
|
||||
class StatusbarController : public css::io::XStreamListener, public ::cppu::OWeakObject
|
||||
{
|
||||
};
|
||||
|
||||
void test(StatusbarController* pController)
|
||||
{
|
||||
css::uno::Reference<css::io::XStreamListener> xController;
|
||||
// expected-error@+1 {{the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting]}}
|
||||
xController.set(static_cast<::cppu::OWeakObject*>(pController), css::uno::UNO_QUERY);
|
||||
}
|
||||
}
|
||||
|
||||
// no warning expected when we have an ambiguous base
|
||||
namespace test10
|
||||
{
|
||||
class Foo : public css::lang::XTypeProvider, public css::lang::XComponent
|
||||
{
|
||||
virtual ~Foo();
|
||||
void bar()
|
||||
{
|
||||
css::uno::Reference<css::lang::XEventListener> xSource(
|
||||
static_cast<css::lang::XTypeProvider*>(this), css::uno::UNO_QUERY);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// no warning expected for SAL_NO_ACQUIRE
|
||||
namespace test11
|
||||
{
|
||||
void test(css::io::XStreamListener* l)
|
||||
{
|
||||
css::uno::Reference<css::lang::XEventListener> a(l, SAL_NO_ACQUIRE);
|
||||
a.set(l, SAL_NO_ACQUIRE);
|
||||
}
|
||||
}
|
||||
|
||||
// no warning expected: querying for XInterface (instead of doing an upcast) has special semantics,
|
||||
// to check for UNO object equivalence.
|
||||
void test12(const css::uno::Reference<css::io::XStreamListener>& a)
|
||||
{
|
||||
css::uno::Reference<css::uno::XInterface> b(a, css::uno::UNO_QUERY);
|
||||
}
|
||||
|
||||
// no warning expected: querying for XInterface (instead of doing an upcast) has special semantics,
|
||||
// to check for UNO object equivalence.
|
||||
struct Test13
|
||||
{
|
||||
css::uno::Reference<css::uno::XInterface> m_xNormalizedIFace;
|
||||
void newObject(const css::uno::Reference<css::uno::XInterface>& _rxIFace)
|
||||
{
|
||||
m_xNormalizedIFace.set(_rxIFace, css::uno::UNO_QUERY);
|
||||
}
|
||||
};
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|
@ -48,6 +48,7 @@ $(eval $(call gb_CompilerTest_add_exception_objects,compilerplugins_clang, \
|
||||
compilerplugins/clang/test/redundantinline \
|
||||
compilerplugins/clang/test/redundantpointerops \
|
||||
compilerplugins/clang/test/refcounting \
|
||||
compilerplugins/clang/test/referencecasting \
|
||||
compilerplugins/clang/test/salbool \
|
||||
compilerplugins/clang/test/salcall \
|
||||
compilerplugins/clang/test/sallogareas \
|
||||
|
@ -55,8 +55,6 @@ AccessibilityTools::getAccessibleObjectForRole(
|
||||
|
||||
if ((ac->getAccessibleRole() == role) && isShowing)
|
||||
{
|
||||
css::uno::Reference<css::accessibility::XAccessible> SearchedAccessible(xacc,
|
||||
uno::UNO_QUERY);
|
||||
return ac;
|
||||
}
|
||||
else
|
||||
|
@ -109,7 +109,7 @@ void Test::testEmbeddedGraphicRoundtrip()
|
||||
|
||||
// Check whether graphic exported well after it was swapped out
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
|
||||
const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
|
||||
@ -246,7 +246,7 @@ void Test::testImageWithSpecialID()
|
||||
|
||||
// Check whether graphic exported well
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
|
||||
const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
|
||||
@ -344,7 +344,7 @@ void Test::testGraphicShape()
|
||||
|
||||
// Check whether graphic exported well
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
|
||||
const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
|
||||
@ -801,7 +801,7 @@ void Test::testSkipImages()
|
||||
|
||||
// Check shapes (images, textboxes, custom shapes)
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
uno::Reference<drawing::XShape> xShape;
|
||||
uno::Reference<graphic::XGraphic> xGraphic;
|
||||
uno::Reference< beans::XPropertySet > XPropSet;
|
||||
|
@ -126,7 +126,7 @@ public:
|
||||
uno::Reference< sdbc::XRowSet > xRowSet( xInstance, uno::UNO_QUERY );
|
||||
if (xRowSet.is())
|
||||
xRowSet->execute(); // build ResultSet from properties
|
||||
xCurResultSet.set( xRowSet, uno::UNO_QUERY );
|
||||
xCurResultSet = xRowSet;
|
||||
assert( xCurResultSet.is() && "failed to build ResultSet" );
|
||||
}
|
||||
return xCurResultSet;
|
||||
@ -366,7 +366,7 @@ DECLARE_SHELL_MAILMERGE_TEST(testMultiPageAnchoredDraws, "multiple-page-anchored
|
||||
CPPUNIT_ASSERT_EQUAL(sal_uInt16(8), nPhysPages);
|
||||
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxMMComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(8), xDraws->getCount());
|
||||
|
||||
std::set<sal_uInt16> pages;
|
||||
@ -393,7 +393,7 @@ DECLARE_FILE_MAILMERGE_TEST(testMissingDefaultLineColor, "missing-default-line-c
|
||||
// The document was created by LO version which didn't write out the default value for line color
|
||||
// (see XMLGraphicsDefaultStyle::SetDefaults()).
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
uno::Reference<beans::XPropertySet> xPropertySet(xDraws->getByIndex(0), uno::UNO_QUERY);
|
||||
// Lines do not have a line color.
|
||||
CPPUNIT_ASSERT( !xPropertySet->getPropertySetInfo()->hasPropertyByName( "LineColor" ));
|
||||
@ -700,7 +700,7 @@ DECLARE_SHELL_MAILMERGE_TEST(testTdf118113, "tdf118113.odt", "tdf118113.ods", "t
|
||||
|
||||
// verify that there is a text box for each data record
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxMMComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xDraws->getCount());
|
||||
|
||||
// verify the text box for each data record is anchored to the first page of the given data record's pages
|
||||
|
@ -575,7 +575,7 @@ DECLARE_ODFEXPORT_TEST(testFdo79358, "fdo79358.odt")
|
||||
{
|
||||
// the boolean properties of the index were not exported properly
|
||||
uno::Reference<text::XDocumentIndexesSupplier> xIndexSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xIndexes(xIndexSupplier->getDocumentIndexes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xIndexes = xIndexSupplier->getDocumentIndexes();
|
||||
uno::Reference<text::XDocumentIndex> xTOCIndex(xIndexes->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<beans::XPropertySet> xTOCProps(xTOCIndex, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(xTOCProps, "CreateFromOutline"));
|
||||
@ -637,8 +637,8 @@ DECLARE_ODFEXPORT_TEST(testDuplicateCrossRefHeadingBookmark, "CrossRefHeadingBoo
|
||||
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent,
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarks(
|
||||
xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarks =
|
||||
xBookmarksSupplier->getBookmarks();
|
||||
uno::Reference<text::XTextContent> xBookmark1(
|
||||
xBookmarks->getByName("__RefHeading__8284_1826734303"), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT(xBookmark1.is());
|
||||
@ -721,7 +721,7 @@ DECLARE_ODFEXPORT_TEST(testStylePageNumber, "ooo321_stylepagenumber.odt")
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Right Page"), getProperty<OUString>(xPara0, "PageDescName"));
|
||||
CPPUNIT_ASSERT_EQUAL(uno::Any(), xPara0->getPropertyValue("PageNumberOffset"));
|
||||
|
||||
uno::Reference<container::XNameAccess> xParaStyles(getStyles("ParagraphStyles"), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xParaStyles = getStyles("ParagraphStyles");
|
||||
uno::Reference<beans::XPropertySet> xStyle1(xParaStyles->getByName("stylewithbreak1"), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Right Page"), getProperty<OUString>(xStyle1, "PageDescName"));
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(1), getProperty<sal_Int16>(xStyle1, "PageNumberOffset"));
|
||||
@ -864,7 +864,7 @@ DECLARE_ODFEXPORT_TEST(testCharacterBorder, "charborder.odt")
|
||||
|
||||
// Check character style
|
||||
{
|
||||
uno::Reference< container::XNameAccess > xStyleFamily(getStyles("CharacterStyles"), uno::UNO_QUERY);
|
||||
uno::Reference< container::XNameAccess > xStyleFamily = getStyles("CharacterStyles");
|
||||
uno::Reference < beans::XPropertySet > xStyleSet(xStyleFamily->getByName("CharDiffBor"), uno::UNO_QUERY);
|
||||
|
||||
// Top border
|
||||
@ -1149,8 +1149,8 @@ DECLARE_ODFEXPORT_TEST(testWhitespace, "whitespace.odt")
|
||||
// what a stupid idea to require recursively enumerating this
|
||||
uno::Reference<container::XEnumerationAccess> xMeta(
|
||||
getProperty<uno::Reference<text::XTextContent>>(xPortion, "InContentMetadata"), uno::UNO_QUERY);
|
||||
uno::Reference<container::XEnumeration> xMetaPortions(
|
||||
xMeta->createEnumeration(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XEnumeration> xMetaPortions =
|
||||
xMeta->createEnumeration();
|
||||
uno::Reference<text::XTextRange> xMP(xMetaPortions->nextElement(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text"), getProperty<OUString>(xMP, "TextPortionType"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(" "), xMP->getString());
|
||||
@ -1172,8 +1172,8 @@ DECLARE_ODFEXPORT_TEST(testWhitespace, "whitespace.odt")
|
||||
// what a stupid idea to require recursively enumerating this
|
||||
uno::Reference<container::XEnumerationAccess> xMeta(
|
||||
getProperty<uno::Reference<text::XTextContent>>(xPortion, "TextField"), uno::UNO_QUERY);
|
||||
uno::Reference<container::XEnumeration> xMetaPortions(
|
||||
xMeta->createEnumeration(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XEnumeration> xMetaPortions =
|
||||
xMeta->createEnumeration();
|
||||
uno::Reference<text::XTextRange> xMP(xMetaPortions->nextElement(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text"), getProperty<OUString>(xMP, "TextPortionType"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(" "), xMP->getString());
|
||||
@ -2139,7 +2139,7 @@ DECLARE_ODFEXPORT_TEST(tdf101856_overlapped, "tdf101856_overlapped.odt")
|
||||
// get bookmark interface
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
|
||||
// check: we have 2 bookmarks
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xBookmarksByIdx->getCount());
|
||||
@ -2163,7 +2163,7 @@ DECLARE_ODFEXPORT_TEST(tdf101856, "tdf101856.odt")
|
||||
// get bookmark interface
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
|
||||
// check: we have 2 bookmarks
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5), xBookmarksByIdx->getCount());
|
||||
|
@ -346,7 +346,7 @@ DECLARE_OOXMLEXPORT_TEST(testFdo69649, "fdo69649.docx")
|
||||
uno::Reference<text::XDocumentIndexesSupplier> xIndexSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xIndexes = xIndexSupplier->getDocumentIndexes( );
|
||||
uno::Reference<text::XDocumentIndex> xTOCIndex(xIndexes->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xTextRange(xTOCIndex->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xTextRange = xTOCIndex->getAnchor();
|
||||
uno::Reference<text::XText> xText = xTextRange->getText( );
|
||||
uno::Reference<text::XTextCursor> xTextCursor = xText->createTextCursor( );
|
||||
xTextCursor->gotoRange(xTextRange->getStart(),false);
|
||||
@ -721,7 +721,7 @@ DECLARE_OOXMLEXPORT_TEST(testHidemark, "hidemark.docx")
|
||||
uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTextTable->getRows();
|
||||
// Height should be minimal
|
||||
CPPUNIT_ASSERT_EQUAL(convertTwipToMm100(MINLAY), getProperty<sal_Int64>(xTableRows->getByIndex(1), "Height"));
|
||||
// Size type was MIN, should be FIX to avoid considering the end of paragraph marker.
|
||||
@ -737,7 +737,7 @@ DECLARE_OOXMLEXPORT_TEST(testHidemarkb, "tdf99616_hidemarkb.docx")
|
||||
uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTextTable->getRows();
|
||||
// Height should be .5cm
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int64(501), getProperty<sal_Int64>(xTableRows->getByIndex(1), "Height"));
|
||||
// Size type was MIN, should be FIX to avoid considering the end of paragraph marker.
|
||||
@ -770,29 +770,28 @@ DECLARE_OOXMLEXPORT_TEST(testFdo85542, "fdo85542.docx")
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("B1"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("B2"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("B3"));
|
||||
// B1
|
||||
uno::Reference<text::XTextContent> xContent1(xBookmarksByName->getByName("B1"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange1(xContent1->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange1 = xContent1->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("ABB"), xRange1->getString());
|
||||
// B2
|
||||
uno::Reference<text::XTextContent> xContent2(xBookmarksByName->getByName("B2"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange2(xContent2->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange2 = xContent2->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("BBC"), xRange2->getString());
|
||||
// B3 -- testing a collapsed bookmark
|
||||
uno::Reference<text::XTextContent> xContent3(xBookmarksByName->getByName("B3"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange3(xContent3->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange3 = xContent3->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(xRange3->getString(), OUString());
|
||||
uno::Reference<text::XText> xText(xRange3->getText( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xNeighborhoodCursor(xText->createTextCursor( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xText = xRange3->getText( );
|
||||
uno::Reference<text::XTextCursor> xNeighborhoodCursor = xText->createTextCursor( );
|
||||
xNeighborhoodCursor->gotoRange(xRange3, false);
|
||||
xNeighborhoodCursor->goLeft(1, false);
|
||||
xNeighborhoodCursor->goRight(2, true);
|
||||
uno::Reference<text::XTextRange> xTextNeighborhood(xNeighborhoodCursor, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("AB"), xTextNeighborhood->getString());
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("AB"), xNeighborhoodCursor->getString());
|
||||
}
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf65955, "tdf65955.odt")
|
||||
@ -800,16 +799,16 @@ DECLARE_OOXMLEXPORT_TEST(testTdf65955, "tdf65955.odt")
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("a"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("b"));
|
||||
// a
|
||||
uno::Reference<text::XTextContent> xContent3(xBookmarksByName->getByName("a"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange3(xContent3->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange3 = xContent3->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(xRange3->getString(), OUString());
|
||||
// b
|
||||
uno::Reference<text::XTextContent> xContent2(xBookmarksByName->getByName("b"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange2(xContent2->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange2 = xContent2->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("r"), xRange2->getString());
|
||||
}
|
||||
|
||||
@ -818,11 +817,11 @@ DECLARE_OOXMLEXPORT_TEST(testTdf65955_2, "tdf65955_2.odt")
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("test"));
|
||||
|
||||
uno::Reference<text::XTextContent> xContent3(xBookmarksByName->getByName("test"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange3(xContent3->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange3 = xContent3->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("foo bar"), xRange3->getString());
|
||||
}
|
||||
|
||||
@ -879,7 +878,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf87460, "tdf87460.docx")
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf90611, "tdf90611.docx")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XText> xFootnoteText;
|
||||
xFootnotes->getByIndex(0) >>= xFootnoteText;
|
||||
// This was 11.
|
||||
@ -905,7 +904,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf86374, "tdf86374.docx")
|
||||
uno::Reference<text::XTextTablesSupplier> xTextTablesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTables(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTable->getRows();
|
||||
// btLr text direction was imported as FIX, it should be MIN to have enough space for the additionally entered paragraphs.
|
||||
CPPUNIT_ASSERT_EQUAL(text::SizeType::MIN, getProperty<sal_Int16>(xTableRows->getByIndex(0), "SizeType"));
|
||||
}
|
||||
@ -1022,7 +1021,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf91417, "tdf91417.docx")
|
||||
{
|
||||
// The first paragraph should contain a link to "http://www.google.com/"
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xTextCursor(xTextDocument->getText()->createTextCursor( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xTextCursor = xTextDocument->getText()->createTextCursor( );
|
||||
uno::Reference<beans::XPropertySet> xCursorProps(xTextCursor, uno::UNO_QUERY);
|
||||
OUString aValue;
|
||||
xCursorProps->getPropertyValue("HyperLinkURL") >>= aValue;
|
||||
@ -1033,7 +1032,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf90810, "tdf90810short.docx")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnoteSupp(xTextDocument, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnoteIdxAcc(xFootnoteSupp->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnoteIdxAcc = xFootnoteSupp->getFootnotes();
|
||||
uno::Reference<text::XFootnote> xFootnote(xFootnoteIdxAcc->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xFootnoteText(xFootnote, uno::UNO_QUERY);
|
||||
OUString sFootnoteText = xFootnoteText->getString();
|
||||
@ -1053,7 +1052,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf95777, "tdf95777.docx")
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf94374, "hello.docx")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText = xTextDocument->getText();
|
||||
uno::Reference<text::XTextRange> xEnd = xText->getEnd();
|
||||
// This failed: it wasn't possible to insert a DOCX document into an existing Writer one.
|
||||
CPPUNIT_ASSERT(paste("tdf94374.docx", xEnd));
|
||||
@ -1205,7 +1204,7 @@ DECLARE_OOXMLEXPORT_TEST( testTablePosition14, "table-position-14.docx" )
|
||||
uno::Reference< view::XSelectionSupplier > xCtrl( xModel->getCurrentController(), uno::UNO_QUERY );
|
||||
xCtrl->select( uno::makeAny( xTable1 ) );
|
||||
uno::Reference< text::XTextViewCursorSupplier > xTextViewCursorSupplier( xCtrl, uno::UNO_QUERY );
|
||||
uno::Reference< text::XTextViewCursor > xCursor( xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY );
|
||||
uno::Reference< text::XTextViewCursor > xCursor = xTextViewCursorSupplier->getViewCursor();
|
||||
awt::Point pos = xCursor->getPosition();
|
||||
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "Incorrect X coord computed from docx",
|
||||
aXCoordsFromOffice[i], pos.X, 1 );
|
||||
@ -1229,7 +1228,7 @@ DECLARE_OOXMLEXPORT_TEST( testTablePosition15, "table-position-15.docx" )
|
||||
uno::Reference< view::XSelectionSupplier > xCtrl( xModel->getCurrentController(), uno::UNO_QUERY );
|
||||
xCtrl->select( uno::makeAny( xTable1 ) );
|
||||
uno::Reference< text::XTextViewCursorSupplier > xTextViewCursorSupplier( xCtrl, uno::UNO_QUERY );
|
||||
uno::Reference< text::XTextViewCursor > xCursor( xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY );
|
||||
uno::Reference< text::XTextViewCursor > xCursor = xTextViewCursorSupplier->getViewCursor();
|
||||
awt::Point pos = xCursor->getPosition();
|
||||
CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "Incorrect X coord computed from docx",
|
||||
aXCoordsFromOffice[i], pos.X, 1 );
|
||||
|
@ -149,7 +149,7 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf121561_tocTitle, "tdf121456_tabsOffse
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf124106, "tdf121456.docx")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> textDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> text(textDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> text = textDocument->getText();
|
||||
// -1 if the 'Y' character does not occur
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), text->getString().indexOf('Y'));
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), text->getString().indexOf('y'));
|
||||
@ -161,7 +161,7 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf121561_tocTitleDocx, "tdf121456_tabsO
|
||||
|
||||
// get TOC node
|
||||
uno::Reference<text::XDocumentIndexesSupplier> xIndexSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xIndexes(xIndexSupplier->getDocumentIndexes( ), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xIndexes = xIndexSupplier->getDocumentIndexes( );
|
||||
uno::Reference<text::XDocumentIndex> xTOCIndex(xIndexes->getByIndex(0), uno::UNO_QUERY);
|
||||
|
||||
// ensure TOC title was set in TOC properties
|
||||
@ -510,7 +510,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf104354, "tdf104354.docx")
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf104354_firstParaInSection, "tdf104354_firstParaInSection.docx")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XText> xText(xFootnotes->getByIndex(0), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(494),
|
||||
getProperty<sal_Int32>(getParagraphOfText(1, xText), "ParaTopMargin"));
|
||||
|
@ -354,8 +354,7 @@ DECLARE_OOXMLEXPORT_TEST(testObjectCrossReference, "object_cross_reference.odt")
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(),
|
||||
uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(15), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Drawing0_full"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Drawing0_label_and_number"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Drawing0_caption_only"));
|
||||
@ -379,31 +378,31 @@ DECLARE_OOXMLEXPORT_TEST(testObjectCrossReference, "object_cross_reference.odt")
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Drawing0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Drawing 1: A rectangle"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Drawing0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Drawing 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Drawing0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("A rectangle"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Drawing0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Drawing1_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Drawing 2: a circle"), xRange->getString());
|
||||
}
|
||||
|
||||
@ -411,31 +410,31 @@ DECLARE_OOXMLEXPORT_TEST(testObjectCrossReference, "object_cross_reference.odt")
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Illustration0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Illustration 1: A picture"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Illustration0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Illustration 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Illustration0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("A picture"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Illustration0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Illustration1_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("an other image"), xRange->getString());
|
||||
}
|
||||
|
||||
@ -443,31 +442,31 @@ DECLARE_OOXMLEXPORT_TEST(testObjectCrossReference, "object_cross_reference.odt")
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Text0_full"),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text 1: A frame"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Text0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Text0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("A frame"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Text0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(
|
||||
xBookmarksByName->getByName("Ref_Text1_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text 2"), xRange->getString());
|
||||
}
|
||||
|
||||
@ -763,8 +762,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf120224_textControlCrossRef, "tdf120224_textContr
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
// TextFields should not be turned into real bookmarks.
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xBookmarksByIdx->getCount());
|
||||
|
||||
@ -786,7 +784,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf117504_numberingIndent, "tdf117504_numberingInde
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testWatermark, "watermark.docx")
|
||||
{
|
||||
uno::Reference<drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(1);
|
||||
uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY);
|
||||
|
||||
sal_Int32 nHeight = xShape->getSize().Height;
|
||||
@ -801,7 +799,7 @@ DECLARE_OOXMLEXPORT_TEST(testWatermark, "watermark.docx")
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testWatermarkTrim, "tdf114308.docx")
|
||||
{
|
||||
uno::Reference<drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(1);
|
||||
|
||||
// Rounding errors
|
||||
sal_Int32 nHeight = xShape->getSize().Height;
|
||||
|
@ -682,7 +682,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf112446_frameStyle, "tdf112446_frameStyle.docx")
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf82173_footnoteStyle, "tdf82173_footnoteStyle.docx")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
|
||||
uno::Reference<text::XText> xFootnoteText;
|
||||
xFootnotes->getByIndex(0) >>= xFootnoteText;
|
||||
@ -705,7 +705,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf82173_footnoteStyle, "tdf82173_footnoteStyle.doc
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf82173_endnoteStyle, "tdf82173_endnoteStyle.docx")
|
||||
{
|
||||
uno::Reference<text::XEndnotesSupplier> xEndnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes(xEndnotesSupplier->getEndnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes = xEndnotesSupplier->getEndnotes();
|
||||
uno::Reference<text::XFootnote> xEndnote;
|
||||
xEndnotes->getByIndex(0) >>= xEndnote;
|
||||
// character properties were previously not assigned to the footnote/endnote in-text anchor.
|
||||
@ -743,10 +743,10 @@ DECLARE_OOXMLEXPORT_TEST(testTdf55427_footnote2endnote, "tdf55427_footnote2endno
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE( "Endnote numbering type", SVX_NUM_ROMAN_LOWER, pDoc->GetEndNoteInfo().aFormat.GetNumberingType() );
|
||||
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
|
||||
uno::Reference<text::XEndnotesSupplier> xEndnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes(xEndnotesSupplier->getEndnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes = xEndnotesSupplier->getEndnotes();
|
||||
uno::Reference<text::XFootnote> xEndnote;
|
||||
xEndnotes->getByIndex(0) >>= xEndnote;
|
||||
uno::Reference<text::XText> xEndnoteText;
|
||||
@ -980,7 +980,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf100075, "tdf100075.docx")
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf105095, "tdf105095.docx")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XTextRange> xTextRange(xFootnotes->getByIndex(0), uno::UNO_QUERY);
|
||||
// This failed, tab between the footnote number and the footnote content
|
||||
// was lost on import.
|
||||
@ -990,7 +990,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf105095, "tdf105095.docx")
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf106062_nonHangingFootnote, "tdf106062_nonHangingFootnote.odt")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XTextRange> xTextRange(xFootnotes->getByIndex(0), uno::UNO_QUERY);
|
||||
// This failed, tab between the footnote number and the footnote content was lost on import.
|
||||
CPPUNIT_ASSERT_MESSAGE( "Footnote starts with a tab", xTextRange->getString().startsWith("\t") );
|
||||
@ -1265,7 +1265,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf90789, "tdf90789.docx")
|
||||
|
||||
uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xCtrl, uno::UNO_QUERY_THROW);
|
||||
uno::Reference<text::XTextViewCursor> xTextCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_SET_THROW);
|
||||
uno::Reference<text::XPageCursor> xPageCursor(xTextCursor.get(), uno::UNO_QUERY_THROW);
|
||||
uno::Reference<text::XPageCursor> xPageCursor(xTextCursor, uno::UNO_QUERY_THROW);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(1), xPageCursor->getPage());
|
||||
}
|
||||
|
||||
|
@ -94,13 +94,11 @@ public:
|
||||
{
|
||||
OUString aURL(m_directories.getURLFromSrc(mpTestDocumentPath) + OUString::createFromAscii(filename));
|
||||
CPPUNIT_ASSERT_MESSAGE("no desktop", mxDesktop.is());
|
||||
uno::Reference<frame::XComponentLoader> xLoader(mxDesktop, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_MESSAGE("no loader", xLoader.is());
|
||||
uno::Sequence<beans::PropertyValue> args( comphelper::InitPropertySequence({
|
||||
{ "DocumentService", uno::Any(OUString("com.sun.star.text.TextDocument")) }
|
||||
}));
|
||||
|
||||
uno::Reference<lang::XComponent> xComponent = xLoader->loadComponentFromURL(aURL, "_default", 0, args);
|
||||
uno::Reference<lang::XComponent> xComponent = mxDesktop->loadComponentFromURL(aURL, "_default", 0, args);
|
||||
OUString sMessage = "loading succeeded: " + aURL;
|
||||
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(sMessage, RTL_TEXTENCODING_UTF8).getStr(), !xComponent.is());
|
||||
}
|
||||
@ -492,7 +490,7 @@ DECLARE_OOXMLIMPORT_TEST(testN780645, "n780645.docx")
|
||||
uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTextTable->getRows();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(2135), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(1), "TableColumnSeparators")[0].Position); // was 1999
|
||||
}
|
||||
|
||||
@ -503,7 +501,7 @@ DECLARE_OOXMLIMPORT_TEST(testWordArtResizing, "WordArt.docx")
|
||||
The test-case ensures the original height and width of the word-art is not changed while importing*/
|
||||
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage = xDrawPageSupplier->getDrawPage();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDrawPage->getCount());
|
||||
|
||||
uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
|
||||
@ -525,7 +523,7 @@ DECLARE_OOXMLIMPORT_TEST(testGroupshapeLine, "groupshape-line.docx")
|
||||
* xray ThisComponent.DrawPage(1).getByIndex(0).Size 'width: 10160, height: 0
|
||||
*/
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage = xDrawPageSupplier->getDrawPage();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xDrawPage->getCount());
|
||||
|
||||
uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
|
||||
@ -588,7 +586,7 @@ DECLARE_OOXMLIMPORT_TEST(testN820788, "n820788.docx")
|
||||
DECLARE_OOXMLIMPORT_TEST(testN820504, "n820504.docx")
|
||||
{
|
||||
uno::Reference<style::XStyleFamiliesSupplier> xFamiliesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xFamiliesAccess(xFamiliesSupplier->getStyleFamilies(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xFamiliesAccess = xFamiliesSupplier->getStyleFamilies();
|
||||
uno::Reference<container::XNameAccess> xStylesAccess(xFamiliesAccess->getByName("ParagraphStyles"), uno::UNO_QUERY);
|
||||
uno::Reference<beans::XPropertySet> xStyle(xStylesAccess->getByName("Default Style"), uno::UNO_QUERY);
|
||||
// The problem was that the CharColor was set to AUTO (-1) even if we have some default char color set
|
||||
@ -726,7 +724,7 @@ DECLARE_OOXMLIMPORT_TEST(testTdf75573_lostTable, "tdf75573_lostTable.docx")
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("# of tables", sal_Int32(1), xTables->getCount() );
|
||||
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("# of frames/shapes", sal_Int32(0), xDraws->getCount() );
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("# of pages", 3, getPages() );
|
||||
@ -1072,7 +1070,7 @@ DECLARE_OOXMLIMPORT_TEST(testTdf85232, "tdf85232.docx")
|
||||
{
|
||||
uno::Reference<drawing::XShapes> xShapes(getShapeByName("Group 219"), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape(xShapes->getByIndex(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShapeDescriptor> xShapeDescriptor(xShape, uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShapeDescriptor> xShapeDescriptor = xShape;
|
||||
// Make sure we're not testing the ellipse child.
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("com.sun.star.drawing.LineShape"), xShapeDescriptor->getShapeType());
|
||||
|
||||
@ -1159,7 +1157,7 @@ DECLARE_OOXMLIMPORT_TEST(testTdf95970, "tdf95970.docx")
|
||||
|
||||
DECLARE_OOXMLIMPORT_TEST(testTdf96674, "tdf96674.docx")
|
||||
{
|
||||
uno::Reference<drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(1);
|
||||
CPPUNIT_ASSERT(xShape.is());
|
||||
awt::Size aActualSize(xShape->getSize());
|
||||
// Width was 3493: the vertical line was horizontal.
|
||||
|
@ -348,10 +348,9 @@ DECLARE_OOXMLIMPORT_TEST(testTdf115094, "tdf115094.docx")
|
||||
// anchor of graphic has to be the text in the text frame
|
||||
// xray ThisComponent.DrawPage(1).Anchor.Text
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage = xDrawPageSupplier->getDrawPage();
|
||||
uno::Reference<text::XTextContent> xShape(xDrawPage->getByIndex(1), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText1(xShape->getAnchor()->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText1 = xShape->getAnchor()->getText();
|
||||
|
||||
// xray ThisComponent.TextTables(0).getCellByName("A1")
|
||||
uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
|
@ -71,8 +71,7 @@ DECLARE_RTFIMPORT_TEST(testN695479, "n695479.rtf")
|
||||
getProperty<sal_Int32>(xPropertySet, "Height"));
|
||||
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
bool bFrameFound = false, bDrawFound = false;
|
||||
for (int i = 0; i < xDraws->getCount(); ++i)
|
||||
{
|
||||
@ -82,8 +81,8 @@ DECLARE_RTFIMPORT_TEST(testN695479, "n695479.rtf")
|
||||
// Both frames should be anchored to the first paragraph.
|
||||
bFrameFound = true;
|
||||
uno::Reference<text::XTextContent> xTextContent(xServiceInfo, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xTextContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xText(xRange->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xTextContent->getAnchor();
|
||||
uno::Reference<text::XText> xText = xRange->getText();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("plain"), xText->getString());
|
||||
|
||||
if (i == 0)
|
||||
@ -191,8 +190,7 @@ DECLARE_RTFIMPORT_TEST(testTdf108951, "tdf108951.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testFdo47036, "fdo47036.rtf")
|
||||
{
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
int nAtCharacter = 0;
|
||||
for (int i = 0; i < xDraws->getCount(); ++i)
|
||||
{
|
||||
@ -213,8 +211,7 @@ DECLARE_RTFIMPORT_TEST(testFdo47036, "fdo47036.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testFdo45182, "fdo45182.rtf")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XTextRange> xTextRange(xFootnotes->getByIndex(0), uno::UNO_QUERY);
|
||||
// Encoding in the footnote was wrong.
|
||||
OUString aExpected(u"\u017Eivnost\u00ED" SAL_NEWLINE_STRING);
|
||||
@ -331,7 +328,7 @@ DECLARE_RTFIMPORT_TEST(testFdo52066, "fdo52066.rtf")
|
||||
*
|
||||
* xray ThisComponent.DrawPage(0).Size.Height
|
||||
*/
|
||||
uno::Reference<drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(1);
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(19)), xShape->getSize().Height);
|
||||
}
|
||||
|
||||
@ -354,8 +351,7 @@ DECLARE_RTFIMPORT_TEST(testTdf122430, "tdf122430.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testFdo49892, "fdo49892.rtf")
|
||||
{
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
for (int i = 0; i < xDraws->getCount(); ++i)
|
||||
{
|
||||
OUString aDescription = getProperty<OUString>(xDraws->getByIndex(i), "Description");
|
||||
@ -422,7 +418,7 @@ DECLARE_RTFIMPORT_TEST(testInk, "ink.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testFdo79319, "fdo79319.rtf")
|
||||
{
|
||||
// the thin horizontal rule was imported as a big fat rectangle
|
||||
uno::Reference<drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(1);
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(100), getProperty<sal_Int16>(xShape, "RelativeWidth"));
|
||||
CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(15238), xShape->getSize().Width, 10);
|
||||
CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(53), xShape->getSize().Height, 10);
|
||||
@ -449,7 +445,7 @@ DECLARE_RTFIMPORT_TEST(testFdo55525, "fdo55525.rtf")
|
||||
// Negative left margin was ~missing, -191
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(-1877), getProperty<sal_Int32>(xTable, "LeftMargin"));
|
||||
// Cell width of A1 was 3332 (e.g. not set, 30% percent of total width)
|
||||
uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTable->getRows();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(896), getProperty<uno::Sequence<text::TableColumnSeparator>>(
|
||||
xTableRows->getByIndex(0), "TableColumnSeparators")[0]
|
||||
.Position);
|
||||
@ -460,8 +456,7 @@ DECLARE_RTFIMPORT_TEST(testFdo57708, "fdo57708.rtf")
|
||||
// There were two issues: the doc was of 2 pages and the picture was missing.
|
||||
CPPUNIT_ASSERT_EQUAL(1, getPages());
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
// Two objects: a picture and a textframe.
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xDraws->getCount());
|
||||
}
|
||||
@ -486,7 +481,7 @@ DECLARE_RTFIMPORT_TEST(testFdo59953, "fdo59953.rtf")
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
// Cell width of A1 was 4998 (e.g. not set / not wide enough, ~50% of total width)
|
||||
uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTable->getRows();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(7649), getProperty<uno::Sequence<text::TableColumnSeparator>>(
|
||||
xTableRows->getByIndex(0), "TableColumnSeparators")[0]
|
||||
.Position);
|
||||
@ -624,8 +619,7 @@ DECLARE_RTFIMPORT_TEST(testN823675, "n823675.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testGroupshape, "groupshape.rtf")
|
||||
{
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
// There should be a single groupshape with 2 children.
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDraws->getCount());
|
||||
uno::Reference<drawing::XShapes> xGroupshape(xDraws->getByIndex(0), uno::UNO_QUERY);
|
||||
@ -635,8 +629,7 @@ DECLARE_RTFIMPORT_TEST(testGroupshape, "groupshape.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testGroupshape_notext, "groupshape-notext.rtf")
|
||||
{
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDraws = xDrawPageSupplier->getDrawPage();
|
||||
// There should be a single groupshape with 2 children.
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDraws->getCount());
|
||||
uno::Reference<drawing::XShapes> xGroupshape(xDraws->getByIndex(0), uno::UNO_QUERY);
|
||||
@ -680,7 +673,7 @@ DECLARE_RTFIMPORT_TEST(testFdo66565, "fdo66565.rtf")
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
// Cell width of A2 was 554, should be 453/14846*10000
|
||||
uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTable->getRows();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(304), getProperty<uno::Sequence<text::TableColumnSeparator>>(
|
||||
xTableRows->getByIndex(1), "TableColumnSeparators")[0]
|
||||
.Position);
|
||||
@ -750,7 +743,7 @@ DECLARE_RTFIMPORT_TEST(testTdf115153, "tdf115153.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testFdo68291, "fdo68291.odt")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText = xTextDocument->getText();
|
||||
uno::Reference<text::XTextRange> xEnd = xText->getEnd();
|
||||
paste("rtfimport/data/fdo68291-paste.rtf", xEnd);
|
||||
|
||||
@ -818,7 +811,7 @@ DECLARE_RTFIMPORT_TEST(testFdo74823, "fdo74823.rtf")
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
// Cell width of C2 was too large / column separator being 3749 too small (e.g. not set, around 3/7 of total width)
|
||||
uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTable->getRows();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int16(5391), getProperty<uno::Sequence<text::TableColumnSeparator>>(
|
||||
xTableRows->getByIndex(1), "TableColumnSeparators")[2]
|
||||
.Position);
|
||||
@ -1069,8 +1062,7 @@ DECLARE_RTFIMPORT_TEST(testTdf90046, "tdf90046.rtf")
|
||||
{
|
||||
// this was crashing on importing the footnote
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XTextRange> xTextRange(xFootnotes->getByIndex(0), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Ma"), xTextRange->getString());
|
||||
}
|
||||
@ -1078,7 +1070,7 @@ DECLARE_RTFIMPORT_TEST(testTdf90046, "tdf90046.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testFdo49893, "fdo49893.rtf")
|
||||
{
|
||||
// Image from shape was not loaded, invalid size of image after load
|
||||
uno::Reference<drawing::XShape> xShape(getShape(2), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(2);
|
||||
CPPUNIT_ASSERT(xShape.is());
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(432)), xShape->getSize().Height);
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(1296)), xShape->getSize().Width);
|
||||
@ -1089,7 +1081,7 @@ DECLARE_RTFIMPORT_TEST(testFdo49893_3, "fdo49893-3.rtf")
|
||||
// No artifacts (black lines in left top corner) as shape #3 are expected
|
||||
try
|
||||
{
|
||||
uno::Reference<drawing::XShape> xShape2(getShape(3), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape2 = getShape(3);
|
||||
CPPUNIT_FAIL("exception expected: no shape #3 in document");
|
||||
}
|
||||
catch (lang::IndexOutOfBoundsException const&)
|
||||
@ -1131,7 +1123,7 @@ DECLARE_RTFIMPORT_TEST(testWrapDistance, "wrap-distance.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testTdf90260Par, "hello.rtf")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText = xTextDocument->getText();
|
||||
uno::Reference<text::XTextRange> xEnd = xText->getEnd();
|
||||
paste("rtfimport/data/tdf90260-par.rtf", xEnd);
|
||||
CPPUNIT_ASSERT_EQUAL(2, getParagraphs());
|
||||
@ -1233,7 +1225,7 @@ DECLARE_RTFIMPORT_TEST(testTdf99498, "tdf99498.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testClassificatonPaste, "hello.rtf")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xText = xTextDocument->getText();
|
||||
uno::Reference<text::XTextRange> xEnd = xText->getEnd();
|
||||
|
||||
// Not classified source, not classified destination: OK.
|
||||
@ -1334,18 +1326,15 @@ DECLARE_RTFIMPORT_TEST(testImportHeaderFooter, "tdf108055.rtf")
|
||||
|
||||
// Check if any Header or Footer text snuck into the TextBody
|
||||
uno::Reference<text::XTextRange> paragraph = getParagraph(1);
|
||||
uno::Reference<text::XTextRange> text(paragraph, uno::UNO_QUERY);
|
||||
OUString value = text->getString();
|
||||
OUString value = paragraph->getString();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("First Page"), value);
|
||||
|
||||
paragraph = getParagraph(4);
|
||||
uno::Reference<text::XTextRange> text2(paragraph, uno::UNO_QUERY);
|
||||
value = text2->getString();
|
||||
value = paragraph->getString();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Second Page"), value);
|
||||
|
||||
paragraph = getParagraph(7);
|
||||
uno::Reference<text::XTextRange> text3(paragraph, uno::UNO_QUERY);
|
||||
value = text3->getString();
|
||||
value = paragraph->getString();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Third Page"), value);
|
||||
|
||||
//Check if Headers/Footers only contain what they should in this document
|
||||
@ -1403,7 +1392,7 @@ DECLARE_RTFIMPORT_TEST(testTdf108947, "tdf108947.rtf")
|
||||
DECLARE_RTFIMPORT_TEST(testWatermark, "watermark.rtf")
|
||||
{
|
||||
Size aExpectedSize(14965, 7482);
|
||||
uno::Reference<drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> xShape = getShape(1);
|
||||
awt::Size aActualSize(xShape->getSize());
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(aExpectedSize.Width()), aActualSize.Width);
|
||||
|
@ -916,12 +916,11 @@ void SwUiWriterTest::testFdo70807()
|
||||
for (sal_Int32 i = 0; i < xStylesIter->getCount(); ++i)
|
||||
{
|
||||
uno::Reference<style::XStyle> xStyle(xStylesIter->getByIndex(i), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNamed> xName(xStyle, uno::UNO_QUERY);
|
||||
|
||||
bool expectedUsedStyle = false;
|
||||
bool expectedUserDefined = false;
|
||||
|
||||
OUString styleName(xName->getName());
|
||||
OUString styleName(xStyle->getName());
|
||||
|
||||
// just these styles are user defined styles
|
||||
if (styleName == "pagestyle1" || styleName == "pagestyle2")
|
||||
@ -1113,7 +1112,7 @@ void SwUiWriterTest::testWatermarkPosition()
|
||||
const OUString rPageStyleName = "Default Style";
|
||||
uno::Reference<frame::XModel> xModel = pDoc->GetDocShell()->GetBaseModel();
|
||||
uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(xModel, uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xStyleFamilies(xStyleFamiliesSupplier->getStyleFamilies(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
|
||||
uno::Reference<container::XNameAccess> xStyleFamily(xStyleFamilies->getByName("PageStyles"), uno::UNO_QUERY);
|
||||
uno::Reference<beans::XPropertySet> xPageStyle(xStyleFamily->getByName(rPageStyleName), uno::UNO_QUERY);
|
||||
|
||||
@ -1147,7 +1146,7 @@ void SwUiWriterTest::testWatermarkPosition()
|
||||
|
||||
pEditShell->SetWatermark(aWatermark);
|
||||
|
||||
uno::Reference<css::drawing::XShape> xShape(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<css::drawing::XShape> xShape = getShape(1);
|
||||
CPPUNIT_ASSERT(xShape.is());
|
||||
|
||||
SdrPage* pPage = pWrtShell->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
|
||||
@ -2195,7 +2194,7 @@ void SwUiWriterTest::testTextSearch()
|
||||
rIDCO.InsertPoolItem(*pCursor, aWeightItem);
|
||||
//Performing Search Operation and also covering the UNO coverage for setProperty
|
||||
uno::Reference<util::XSearchable> xSearch(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<util::XSearchDescriptor> xSearchDes(xSearch->createSearchDescriptor(), uno::UNO_QUERY);
|
||||
uno::Reference<util::XSearchDescriptor> xSearchDes = xSearch->createSearchDescriptor();
|
||||
uno::Reference<util::XPropertyReplace> xProp(xSearchDes, uno::UNO_QUERY);
|
||||
//setting some properties
|
||||
uno::Sequence<beans::PropertyValue> aDescriptor( comphelper::InitPropertySequence({
|
||||
@ -2216,7 +2215,7 @@ void SwUiWriterTest::testTextSearch()
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndex->getCount());
|
||||
//Replacing the searched string via XReplaceable
|
||||
uno::Reference<util::XReplaceable> xReplace(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<util::XReplaceDescriptor> xReplaceDes(xReplace->createReplaceDescriptor(), uno::UNO_QUERY);
|
||||
uno::Reference<util::XReplaceDescriptor> xReplaceDes = xReplace->createReplaceDescriptor();
|
||||
uno::Reference<util::XPropertyReplace> xProp2(xReplaceDes, uno::UNO_QUERY);
|
||||
xProp2->setReplaceAttributes(aDescriptor);
|
||||
//checking that the proper attributes are there or not
|
||||
@ -2244,7 +2243,7 @@ void SwUiWriterTest::testTdf69282()
|
||||
SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get());
|
||||
CPPUNIT_ASSERT(pTextDoc);
|
||||
SwDoc* source = pTextDoc->GetDocShell()->GetDoc();
|
||||
uno::Reference<lang::XComponent> xSourceDoc(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<lang::XComponent> xSourceDoc = mxComponent;
|
||||
mxComponent.clear();
|
||||
SwDoc* target = createDoc();
|
||||
SwPageDesc* sPageDesc = source->MakePageDesc("SourceStyle");
|
||||
@ -2305,7 +2304,7 @@ void SwUiWriterTest::testTdf69282WithMirror()
|
||||
SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get());
|
||||
CPPUNIT_ASSERT(pTextDoc);
|
||||
SwDoc* source = pTextDoc->GetDocShell()->GetDoc();
|
||||
uno::Reference<lang::XComponent> xSourceDoc(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<lang::XComponent> xSourceDoc = mxComponent;
|
||||
mxComponent.clear();
|
||||
SwDoc* target = createDoc();
|
||||
SwPageDesc* sPageDesc = source->MakePageDesc("SourceStyle");
|
||||
@ -3335,8 +3334,8 @@ void SwUiWriterTest::testTdf90808()
|
||||
{
|
||||
createDoc();
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xTextRange(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xText(xTextRange->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xTextRange = xTextDocument->getText();
|
||||
uno::Reference<text::XText> xText = xTextRange->getText();
|
||||
uno::Reference<text::XParagraphCursor> xCursor(xText->createTextCursor(), uno::UNO_QUERY);
|
||||
//inserting text into document so that the paragraph is not empty
|
||||
xText->setString("Hello World!");
|
||||
@ -3649,7 +3648,7 @@ void SwUiWriterTest::testTdf88899()
|
||||
createDoc();
|
||||
uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<document::XDocumentProperties> xProps(xDocumentPropertiesSupplier->getDocumentProperties());
|
||||
uno::Reference<beans::XPropertyContainer> xUserProps(xProps->getUserDefinedProperties(), uno::UNO_QUERY);
|
||||
uno::Reference<beans::XPropertyContainer> xUserProps = xProps->getUserDefinedProperties();
|
||||
css::util::DateTime aDateTime = {sal_uInt32(1234567), sal_uInt16(3), sal_uInt16(3), sal_uInt16(3), sal_uInt16(10), sal_uInt16(11), sal_uInt16(2014), true};
|
||||
xUserProps->addProperty("dateTime", sal_Int16(beans::PropertyAttribute::OPTIONAL), uno::makeAny(aDateTime));
|
||||
uno::Reference<lang::XMultiServiceFactory> xFact(mxComponent, uno::UNO_QUERY);
|
||||
@ -3667,8 +3666,8 @@ void SwUiWriterTest::testTdf88899()
|
||||
xPropSet->setPropertyValue("NumberFormat", uno::makeAny(key));
|
||||
//Inserting Text Content
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xTextRange(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xText(xTextRange->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xTextRange = xTextDocument->getText();
|
||||
uno::Reference<text::XText> xText = xTextRange->getText();
|
||||
xText->insertTextContent(xTextRange, xTextField, true);
|
||||
//Retrieving the contents for verification
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("11/10/14 03:03 AM"), xTextField->getPresentation(false));
|
||||
@ -3924,10 +3923,9 @@ void SwUiWriterTest::testEmbeddedDataSource()
|
||||
uno::Reference<sdbc::XDataSource> xDataSource(xDatabaseContext->getByName("calc-data-source"), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT(xDataSource.is());
|
||||
auto xConnection = xDataSource->getConnection("", "");
|
||||
uno::Reference<container::XNameAccess> xTables(
|
||||
uno::Reference<container::XNameAccess> xTables =
|
||||
css::uno::Reference<css::sdbcx::XTablesSupplier>(
|
||||
xConnection, uno::UNO_QUERY_THROW)->getTables(),
|
||||
uno::UNO_QUERY);
|
||||
xConnection, uno::UNO_QUERY_THROW)->getTables();
|
||||
CPPUNIT_ASSERT(xTables.is());
|
||||
CPPUNIT_ASSERT(xTables->hasByName("Sheet1"));
|
||||
xConnection->close();
|
||||
@ -3940,11 +3938,10 @@ void SwUiWriterTest::testEmbeddedDataSource()
|
||||
// Data source has a table named Sheet1 after saving to a different directory.
|
||||
xDataSource.set(xDatabaseContext->getByName("calc-data-source"), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT(xDataSource.is());
|
||||
xConnection.set(xDataSource->getConnection("", ""), uno::UNO_QUERY);
|
||||
xTables.set(
|
||||
xConnection = xDataSource->getConnection("", "");
|
||||
xTables =
|
||||
css::uno::Reference<css::sdbcx::XTablesSupplier>(
|
||||
xConnection, uno::UNO_QUERY_THROW)->getTables(),
|
||||
uno::UNO_QUERY);
|
||||
xConnection, uno::UNO_QUERY_THROW)->getTables();
|
||||
CPPUNIT_ASSERT(xTables.is());
|
||||
CPPUNIT_ASSERT(xTables->hasByName("Sheet1"));
|
||||
xConnection->close();
|
||||
@ -4598,8 +4595,8 @@ void SwUiWriterTest::testTdf96479()
|
||||
|
||||
// Create cursor from bookmark
|
||||
uno::Reference<text::XTextContent> xTextContent(xBookmarksSupplier->getBookmarks()->getByName("original"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xTextContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xCursor(xRange->getText()->createTextCursorByRange(xRange), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xTextContent->getAnchor();
|
||||
uno::Reference<text::XTextCursor> xCursor = xRange->getText()->createTextCursorByRange(xRange);
|
||||
CPPUNIT_ASSERT(xCursor->isCollapsed());
|
||||
|
||||
// Remove bookmark
|
||||
@ -4654,8 +4651,8 @@ void SwUiWriterTest::testTdf96479()
|
||||
CPPUNIT_ASSERT(xBookmarksSupplier->getBookmarks()->hasByName("replacement"));
|
||||
|
||||
uno::Reference<text::XTextContent> xTextContent(xBookmarksSupplier->getBookmarks()->getByName("replacement"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xTextContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xCursor(xRange->getText()->createTextCursorByRange(xRange), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xTextContent->getAnchor();
|
||||
uno::Reference<text::XTextCursor> xCursor = xRange->getText()->createTextCursorByRange(xRange);
|
||||
CPPUNIT_ASSERT(!xCursor->isCollapsed());
|
||||
|
||||
// Verify bookmark content via text node / PaM
|
||||
@ -4858,7 +4855,7 @@ void SwUiWriterTest::testRemoveBookmarkTextAndAddNew()
|
||||
|
||||
// Create cursor from bookmark
|
||||
uno::Reference<text::XTextContent> xTextContent(xBookmarksSupplier->getBookmarks()->getByName("testBookmark"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xTextContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xTextContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), xRange->getString());
|
||||
|
||||
// write "abc"
|
||||
@ -4925,7 +4922,7 @@ void SwUiWriterTest::testRemoveBookmarkTextAndAddNewAfterReload()
|
||||
|
||||
// Create cursor from bookmark
|
||||
uno::Reference<text::XTextContent> xTextContent(xBookmarksSupplier->getBookmarks()->getByName("test"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xTextContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xTextContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), xRange->getString());
|
||||
|
||||
// write "abc"
|
||||
@ -6375,7 +6372,7 @@ void SwUiWriterTest::testParagraphOfTextRange()
|
||||
// Assert that we get the right paragraph object.
|
||||
uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextViewCursorSupplier> xController(xModel->getCurrentController(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xViewCursor(xController->getViewCursor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xViewCursor = xController->getViewCursor();
|
||||
// This failed as there were no TextParagraph property.
|
||||
auto xParagraph = getProperty< uno::Reference<text::XTextRange> >(xViewCursor->getStart(), "TextParagraph");
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("In section"), xParagraph->getString());
|
||||
|
@ -573,7 +573,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf64242_optimizeTable)
|
||||
uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<table::XTableRows> xTableRows = xTextTable->getRows();
|
||||
|
||||
double origWidth = getProperty<double>(xTextTable, "Width");
|
||||
sal_Int32 nToleranceW = origWidth * .01;
|
||||
@ -1413,8 +1413,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testDocxAttributeTableExport)
|
||||
// get the table frame, set new values and dismiss the references
|
||||
{
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage = xDrawPageSupplier->getDrawPage();
|
||||
uno::Reference<beans::XPropertySet> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
|
||||
|
||||
// change the properties
|
||||
@ -1431,8 +1430,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testDocxAttributeTableExport)
|
||||
reload("Office Open XML Text", "floating-table-position.docx");
|
||||
|
||||
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(),
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xDrawPage = xDrawPageSupplier->getDrawPage();
|
||||
uno::Reference<beans::XPropertySet> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
|
||||
|
||||
// test the new values
|
||||
|
@ -95,7 +95,7 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testDefaultCharStyle)
|
||||
loadURL("private:factory/swriter", nullptr);
|
||||
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XSimpleText> xBodyText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XSimpleText> xBodyText = xTextDocument->getText();
|
||||
xBodyText->insertString(xBodyText->getStart(), "x", false);
|
||||
|
||||
uno::Reference<text::XTextCursor> xCursor(xBodyText->createTextCursor());
|
||||
@ -131,7 +131,7 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testGraphicDesciptorURL)
|
||||
|
||||
// Insert it.
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xBodyText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xBodyText = xTextDocument->getText();
|
||||
uno::Reference<text::XTextCursor> xCursor(xBodyText->createTextCursor());
|
||||
uno::Reference<text::XTextContent> xTextContent(xTextGraphic, uno::UNO_QUERY);
|
||||
xBodyText->insertTextContent(xCursor, xTextContent, false);
|
||||
@ -161,7 +161,7 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testGraphicDesciptorURLBitmap)
|
||||
|
||||
// Insert it.
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xBodyText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XText> xBodyText = xTextDocument->getText();
|
||||
uno::Reference<text::XTextCursor> xCursor(xBodyText->createTextCursor());
|
||||
uno::Reference<text::XTextContent> xTextContent(xTextGraphic, uno::UNO_QUERY);
|
||||
xBodyText->insertTextContent(xCursor, xTextContent, false);
|
||||
@ -211,8 +211,8 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testXAutoTextGroup)
|
||||
const OUString sTextTitleNew = "Test Auto Text Renamed";
|
||||
|
||||
// Create new temporary group
|
||||
uno::Reference<text::XAutoTextGroup> xAutoTextGroup(
|
||||
xAutoTextContainer->insertNewByName(sGroupName), uno::UNO_QUERY);
|
||||
uno::Reference<text::XAutoTextGroup> xAutoTextGroup
|
||||
= xAutoTextContainer->insertNewByName(sGroupName);
|
||||
CPPUNIT_ASSERT_MESSAGE("AutoTextGroup was not found!", xAutoTextGroup.is());
|
||||
|
||||
// Insert new element and ensure it exists
|
||||
@ -340,7 +340,7 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testSetPagePrintSettings)
|
||||
loadURL("private:factory/swriter", nullptr);
|
||||
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XSimpleText> xBodyText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XSimpleText> xBodyText = xTextDocument->getText();
|
||||
xBodyText->insertString(xBodyText->getStart(), "x", false);
|
||||
|
||||
uno::Reference<text::XPagePrintable> xPagePrintable(mxComponent, uno::UNO_QUERY);
|
||||
@ -480,7 +480,7 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testPasteListener)
|
||||
|
||||
// Insert initial string.
|
||||
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XSimpleText> xBodyText(xTextDocument->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XSimpleText> xBodyText = xTextDocument->getText();
|
||||
xBodyText->insertString(xBodyText->getStart(), "ABCDEF", false);
|
||||
|
||||
// Add paste listener.
|
||||
|
@ -392,8 +392,8 @@ DECLARE_WW8EXPORT_TEST(testBorderColours, "bordercolours.doc")
|
||||
// Paragraph border
|
||||
uno::Reference<text::XBookmarksSupplier> bookmarksSupplier(mxComponent,
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> bookmarks(
|
||||
bookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> bookmarks =
|
||||
bookmarksSupplier->getBookmarks();
|
||||
uno::Reference<text::XTextContent> bookmark(
|
||||
bookmarks->getByName("ParagraphBorder"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> anchor(bookmark->getAnchor());
|
||||
@ -435,8 +435,8 @@ DECLARE_WW8EXPORT_TEST(testBorderColours, "bordercolours.doc")
|
||||
// Table border
|
||||
uno::Reference<text::XTextTablesSupplier> tablesSupplier(mxComponent,
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> tables(
|
||||
tablesSupplier->getTextTables(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> tables =
|
||||
tablesSupplier->getTextTables();
|
||||
uno::Reference<text::XTextTable> table(
|
||||
tables->getByName("Table1"), uno::UNO_QUERY);
|
||||
table::TableBorder2 tableBorder = getProperty<table::TableBorder2>(
|
||||
@ -447,8 +447,8 @@ DECLARE_WW8EXPORT_TEST(testBorderColours, "bordercolours.doc")
|
||||
CPPUNIT_ASSERT_EQUAL(expectedBottom.Color, tableBorder.BottomLine.Color);
|
||||
|
||||
// Table cells
|
||||
uno::Reference<table::XCell> cell(
|
||||
table->getCellByName("A2"), uno::UNO_QUERY);
|
||||
uno::Reference<table::XCell> cell =
|
||||
table->getCellByName("A2");
|
||||
border = getProperty<table::BorderLine2>(cell, "TopBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedTop, border);
|
||||
border = getProperty<table::BorderLine2>(cell, "LeftBorder");
|
||||
@ -456,7 +456,7 @@ DECLARE_WW8EXPORT_TEST(testBorderColours, "bordercolours.doc")
|
||||
border = getProperty<table::BorderLine2>(cell, "BottomBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedBottom, border);
|
||||
|
||||
cell.set(table->getCellByName("B2"), uno::UNO_QUERY);
|
||||
cell = table->getCellByName("B2");
|
||||
border = getProperty<table::BorderLine2>(cell, "TopBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedDoubleGreen, border);
|
||||
border = getProperty<table::BorderLine2>(cell, "LeftBorder");
|
||||
@ -464,7 +464,7 @@ DECLARE_WW8EXPORT_TEST(testBorderColours, "bordercolours.doc")
|
||||
border = getProperty<table::BorderLine2>(cell, "BottomBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedDoubleGreen, border);
|
||||
|
||||
cell.set(table->getCellByName("C2"), uno::UNO_QUERY);
|
||||
cell = table->getCellByName("C2");
|
||||
border = getProperty<table::BorderLine2>(cell, "TopBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedDoubleGreen, border);
|
||||
border = getProperty<table::BorderLine2>(cell, "LeftBorder");
|
||||
@ -493,7 +493,7 @@ DECLARE_WW8EXPORT_TEST(testBorderColours, "bordercolours.doc")
|
||||
DECLARE_WW8EXPORT_TEST(testMsoBrightnessContrast, "msobrightnesscontrast.doc")
|
||||
{
|
||||
uno::Reference<text::XTextDocument> textDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> image(getShape(1), uno::UNO_QUERY);
|
||||
uno::Reference<drawing::XShape> image = getShape(1);
|
||||
uno::Reference<beans::XPropertySet> imageProperties(image, uno::UNO_QUERY);
|
||||
uno::Reference<graphic::XGraphic> graphic;
|
||||
imageProperties->getPropertyValue( "Graphic" ) >>= graphic;
|
||||
@ -579,8 +579,8 @@ DECLARE_WW8EXPORT_TEST(testFdo81102, "fdo81102.doc")
|
||||
// get page style at beginning of document
|
||||
uno::Reference<text::XTextDocument> textDocument(
|
||||
mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> start(
|
||||
textDocument->getText()->getStart(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> start =
|
||||
textDocument->getText()->getStart();
|
||||
OUString pageStyleName = getProperty<OUString>(start, "PageStyleName");
|
||||
uno::Reference<style::XStyle> pageStyle(
|
||||
getStyles("PageStyles")->getByName(pageStyleName), uno::UNO_QUERY);
|
||||
@ -632,7 +632,7 @@ DECLARE_WW8EXPORT_TEST(testTdf74328, "tdf74328.doc")
|
||||
reading page numbers at sections > 255, in this case 256
|
||||
*/
|
||||
uno::Reference<text::XTextDocument> textDocument(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xTextCursor(textDocument->getText()->createTextCursor( ), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xTextCursor = textDocument->getText()->createTextCursor( );
|
||||
uno::Reference<beans::XPropertySet> xProps(xTextCursor, uno::UNO_QUERY);
|
||||
uno::Any aOffset = xProps->getPropertyValue("PageNumberOffset");
|
||||
sal_Int16 nOffset = 0;
|
||||
@ -765,7 +765,7 @@ DECLARE_WW8EXPORT_TEST(testFdo46020, "fdo46020.odt")
|
||||
{
|
||||
// The footnote in that document wasn't exported, check that it is actually exported
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xFootnotes->getCount());
|
||||
}
|
||||
|
||||
@ -968,8 +968,8 @@ DECLARE_WW8EXPORT_TEST(testBorderColoursExport, "bordercolours.odt")
|
||||
// Paragraph border
|
||||
uno::Reference<text::XBookmarksSupplier> bookmarksSupplier(mxComponent,
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> bookmarks(
|
||||
bookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> bookmarks =
|
||||
bookmarksSupplier->getBookmarks();
|
||||
uno::Reference<text::XTextContent> bookmark(
|
||||
bookmarks->getByName("ParagraphBorder"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> anchor(bookmark->getAnchor());
|
||||
@ -1011,8 +1011,8 @@ DECLARE_WW8EXPORT_TEST(testBorderColoursExport, "bordercolours.odt")
|
||||
// Table border
|
||||
uno::Reference<text::XTextTablesSupplier> tablesSupplier(mxComponent,
|
||||
uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> tables(
|
||||
tablesSupplier->getTextTables(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> tables =
|
||||
tablesSupplier->getTextTables();
|
||||
uno::Reference<text::XTextTable> table(
|
||||
tables->getByName("Table1"), uno::UNO_QUERY);
|
||||
table::TableBorder2 tableBorder = getProperty<table::TableBorder2>(
|
||||
@ -1027,8 +1027,8 @@ DECLARE_WW8EXPORT_TEST(testBorderColoursExport, "bordercolours.odt")
|
||||
#endif
|
||||
|
||||
// Table cells
|
||||
uno::Reference<table::XCell> cell(
|
||||
table->getCellByName("A2"), uno::UNO_QUERY);
|
||||
uno::Reference<table::XCell> cell =
|
||||
table->getCellByName("A2");
|
||||
border = getProperty<table::BorderLine2>(cell, "TopBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedTop, border);
|
||||
border = getProperty<table::BorderLine2>(cell, "LeftBorder");
|
||||
@ -1040,7 +1040,7 @@ DECLARE_WW8EXPORT_TEST(testBorderColoursExport, "bordercolours.odt")
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedBottom, border);
|
||||
#endif
|
||||
|
||||
cell.set(table->getCellByName("B2"), uno::UNO_QUERY);
|
||||
cell = table->getCellByName("B2");
|
||||
border = getProperty<table::BorderLine2>(cell, "TopBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedDoubleGreen, border);
|
||||
border = getProperty<table::BorderLine2>(cell, "LeftBorder");
|
||||
@ -1048,7 +1048,7 @@ DECLARE_WW8EXPORT_TEST(testBorderColoursExport, "bordercolours.odt")
|
||||
border = getProperty<table::BorderLine2>(cell, "BottomBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedDoubleGreen, border);
|
||||
|
||||
cell.set(table->getCellByName("C2"), uno::UNO_QUERY);
|
||||
cell = table->getCellByName("C2");
|
||||
border = getProperty<table::BorderLine2>(cell, "TopBorder");
|
||||
CPPUNIT_ASSERT_BORDER_EQUAL(expectedDoubleGreen, border);
|
||||
border = getProperty<table::BorderLine2>(cell, "LeftBorder");
|
||||
@ -1157,8 +1157,8 @@ DECLARE_WW8EXPORT_TEST(testTdf92281, "tdf92281.doc")
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Wingdings"), getProperty<OUString>(xRun, "CharFontNameAsian"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Wingdings"), getProperty<OUString>(xRun, "CharFontNameComplex"));
|
||||
|
||||
uno::Reference<text::XText> xXText(getParagraph(1)->getText(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextCursor> xCursor( xXText->createTextCursor() , uno::UNO_QUERY );
|
||||
uno::Reference<text::XText> xXText = getParagraph(1)->getText();
|
||||
uno::Reference<text::XTextCursor> xCursor = xXText->createTextCursor();
|
||||
|
||||
xCursor->goRight( 5 , false );
|
||||
uno::Reference< beans::XPropertySet > xPropSet(xCursor, uno::UNO_QUERY);
|
||||
@ -1263,7 +1263,7 @@ DECLARE_WW8EXPORT_TEST(testCommentExport, "comment-export.odt")
|
||||
for (int i = 0; i < nNumberOfTextPortions; ++i)
|
||||
{
|
||||
OUString sKind = aTextPortions[i].sKind;
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xPara, i + 1), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRun = getRun(xPara, i + 1);
|
||||
uno::Reference<beans::XPropertySet> xPropertySet(xRun, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(sKind, getProperty<OUString>(xPropertySet, "TextPortionType"));
|
||||
|
||||
|
@ -116,10 +116,10 @@ DECLARE_WW8EXPORT_TEST(testTdf55427_footnote2endnote, "tdf55427_footnote2endnote
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE( "Endnote numbering type", SVX_NUM_ROMAN_LOWER, pDoc->GetEndNoteInfo().aFormat.GetNumberingType() );
|
||||
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
|
||||
uno::Reference<text::XEndnotesSupplier> xEndnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes(xEndnotesSupplier->getEndnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes = xEndnotesSupplier->getEndnotes();
|
||||
uno::Reference<text::XFootnote> xEndnote;
|
||||
xEndnotes->getByIndex(0) >>= xEndnote;
|
||||
uno::Reference<text::XText> xEndnoteText;
|
||||
@ -215,7 +215,7 @@ DECLARE_WW8EXPORT_TEST(testTdf112517_maxSprms, "tdf112517_maxSprms.doc")
|
||||
DECLARE_WW8EXPORT_TEST(testTdf108448_endNote, "tdf108448_endNote.odt")
|
||||
{
|
||||
uno::Reference<text::XEndnotesSupplier> xEndnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes(xEndnotesSupplier->getEndnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xEndnotes = xEndnotesSupplier->getEndnotes();
|
||||
uno::Reference<text::XText> xEndnote;
|
||||
xEndnotes->getByIndex(0) >>= xEndnote;
|
||||
|
||||
@ -225,7 +225,7 @@ DECLARE_WW8EXPORT_TEST(testTdf108448_endNote, "tdf108448_endNote.odt")
|
||||
DECLARE_WW8EXPORT_TEST(testTdf106062_nonHangingFootnote, "tdf106062_nonHangingFootnote.odt")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XTextRange> xTextRange(xFootnotes->getByIndex(0), uno::UNO_QUERY);
|
||||
// This failed, tab between the footnote number and the footnote content was lost on import.
|
||||
CPPUNIT_ASSERT_MESSAGE( "Footnote starts with a tab", xTextRange->getString().startsWith("\t") );
|
||||
@ -234,7 +234,7 @@ DECLARE_WW8EXPORT_TEST(testTdf106062_nonHangingFootnote, "tdf106062_nonHangingFo
|
||||
DECLARE_WW8EXPORT_TEST(testTdf116570_exportFootnote, "tdf116570_exportFootnote.odt")
|
||||
{
|
||||
uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xFootnotes = xFootnotesSupplier->getFootnotes();
|
||||
uno::Reference<text::XText> xFootnoteText;
|
||||
xFootnotes->getByIndex(0) >>= xFootnoteText;
|
||||
|
||||
@ -323,7 +323,7 @@ DECLARE_WW8EXPORT_TEST(testTdf108072, "tdf108072.doc")
|
||||
uno::Reference<text::XTextTablesSupplier> xTextTablesSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTables(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTableRows(xTable->getRows(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTableRows = xTable->getRows();
|
||||
CPPUNIT_ASSERT_EQUAL(true, getProperty<bool>(xTableRows->getByIndex(0), "IsSplitAllowed"));
|
||||
}
|
||||
|
||||
@ -450,7 +450,7 @@ DECLARE_OOXMLEXPORT_TEST( testTableCrossReference, "table_cross_reference.odt" )
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Table0_full"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Table0_label_and_number"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Table0_caption_only"));
|
||||
@ -459,22 +459,22 @@ DECLARE_OOXMLEXPORT_TEST( testTableCrossReference, "table_cross_reference.odt" )
|
||||
// Check bookmark text ranges
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table 1: Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
|
||||
@ -608,7 +608,7 @@ DECLARE_OOXMLEXPORT_TEST( testTableCrossReferenceCustomFormat, "table_cross_refe
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(16), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Table0_full"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Table0_label_and_number"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Table0_caption_only"));
|
||||
@ -630,85 +630,85 @@ DECLARE_OOXMLEXPORT_TEST( testTableCrossReferenceCustomFormat, "table_cross_refe
|
||||
// First table's caption
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1. Table: Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1. Table"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
// Second table's caption
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table1_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("2. TableTable caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table1_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("2. Table"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table1_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table1_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("2"), xRange->getString());
|
||||
}
|
||||
// Third table's caption
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table2_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("3) Table Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table2_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("3) Table"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table2_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table2_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("3"), xRange->getString());
|
||||
}
|
||||
// Fourth table's caption
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table3_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table 4- Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table3_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table 4"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table3_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Table caption"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Table3_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("4"), xRange->getString());
|
||||
}
|
||||
}
|
||||
@ -724,7 +724,7 @@ DECLARE_OOXMLEXPORT_TEST( testObjectCrossReference, "object_cross_reference.odt"
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(15), xBookmarksByIdx->getCount());
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Drawing0_full"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Drawing0_label_and_number"));
|
||||
CPPUNIT_ASSERT(xBookmarksByName->hasByName("Ref_Drawing0_caption_only"));
|
||||
@ -747,81 +747,81 @@ DECLARE_OOXMLEXPORT_TEST( testObjectCrossReference, "object_cross_reference.odt"
|
||||
// Cross references to shapes
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Drawing0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Drawing 1: A rectangle"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Drawing0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Drawing 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Drawing0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("A rectangle"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Drawing0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Drawing1_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Drawing 2: a circle"), xRange->getString());
|
||||
}
|
||||
|
||||
// Cross references to pictures
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Illustration0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Illustration 1: A picture"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Illustration0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Illustration 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Illustration0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("A picture"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Illustration0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Illustration1_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("an other image"), xRange->getString());
|
||||
}
|
||||
|
||||
// Cross references to text frames
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Text0_full"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text 1: A frame"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Text0_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text 1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Text0_caption_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("A frame"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Text0_number_only"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("1"), xRange->getString());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextContent> xContent(xBookmarksByName->getByName("Ref_Text1_label_and_number"), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange(xContent->getAnchor(), uno::UNO_QUERY);
|
||||
uno::Reference<text::XTextRange> xRange = xContent->getAnchor();
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Text 2"), xRange->getString());
|
||||
}
|
||||
}
|
||||
|
@ -159,7 +159,7 @@ DECLARE_WW8EXPORT_TEST(testTdf120225_textControlCrossRef, "tdf120225_textControl
|
||||
|
||||
uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xBookmarksByIdx(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName(xBookmarksSupplier->getBookmarks(), uno::UNO_QUERY);
|
||||
uno::Reference<container::XNameAccess> xBookmarksByName = xBookmarksSupplier->getBookmarks();
|
||||
// TextFields should not be turned into real bookmarks.
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), xBookmarksByIdx->getCount());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user