diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2016-01-30 22:12:35 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2016-02-05 21:20:50 +0100 |
commit | aa20acb87d48b4dcda337ab08c5d8a76a400bacb (patch) | |
tree | 4837e57b9b539a13ef84872d791aec04bd0b5c04 /basic/qa | |
parent | 12c59662f79a72ecf2c8faf6a9bf54b8acd4885a (diff) |
basic: Merge macro snippet tests
Change-Id: Ia2d8944227c6be8b5ae7b42f7d566ac150d522b9
Diffstat (limited to 'basic/qa')
-rw-r--r-- | basic/qa/cppunit/basic_coverage.cxx | 3 | ||||
-rw-r--r-- | basic/qa/cppunit/basictest.cxx | 126 | ||||
-rw-r--r-- | basic/qa/cppunit/basictest.hxx | 106 | ||||
-rw-r--r-- | basic/qa/cppunit/test_append.cxx | 3 | ||||
-rw-r--r-- | basic/qa/cppunit/test_nested_struct.cxx | 3 | ||||
-rw-r--r-- | basic/qa/cppunit/test_vba.cxx | 18 |
6 files changed, 146 insertions, 113 deletions
diff --git a/basic/qa/cppunit/basic_coverage.cxx b/basic/qa/cppunit/basic_coverage.cxx index 8e321c747f3a..a77b85a05470 100644 --- a/basic/qa/cppunit/basic_coverage.cxx +++ b/basic/qa/cppunit/basic_coverage.cxx @@ -166,8 +166,5 @@ void Coverage::Coverage_Iterator() CPPUNIT_TEST_SUITE_REGISTRATION(Coverage); } -CPPUNIT_PLUGIN_IMPLEMENT(); - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basic/qa/cppunit/basictest.cxx b/basic/qa/cppunit/basictest.cxx new file mode 100644 index 000000000000..ba4ace91765a --- /dev/null +++ b/basic/qa/cppunit/basictest.cxx @@ -0,0 +1,126 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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 "basictest.hxx" +#include <cppunit/TestFixture.h> +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/plugin/TestPlugIn.h> +#include <basic/sbstar.hxx> +#include <basic/basrdll.hxx> +#include <basic/sbmod.hxx> +#include <basic/sbmeth.hxx> +#include <basic/sbuno.hxx> +#include <osl/file.hxx> + +void MacroSnippet::InitSnippet() +{ + CPPUNIT_ASSERT_MESSAGE( "No resource manager", maDll.GetBasResMgr() != nullptr ); + mpBasic = new StarBASIC(); + StarBASIC::SetGlobalErrorHdl( LINK( this, MacroSnippet, BasicErrorHdl ) ); +} + +void MacroSnippet::MakeModule( const OUString& sSource ) +{ + mpMod = mpBasic->MakeModule( "TestModule", sSource ); +} + +MacroSnippet::MacroSnippet( const OUString& sSource ) + : mbError(false) +{ + InitSnippet(); + MakeModule( sSource ); +} + +MacroSnippet::MacroSnippet() + : mbError(false) +{ + InitSnippet(); +} + +void MacroSnippet::LoadSourceFromFile( const OUString& sMacroFileURL ) +{ + OUString sSource; + fprintf(stderr,"loadSource opening macro file %s\n", OUStringToOString( sMacroFileURL, RTL_TEXTENCODING_UTF8 ).getStr() ); + + osl::File aFile(sMacroFileURL); + if(osl::FileBase::E_None == aFile.open(osl_File_OpenFlag_Read)) + { + sal_uInt64 size; + sal_uInt64 size_read; + if(osl::FileBase::E_None == aFile.getSize(size)) + { + void* buffer = calloc(1, size+1); + CPPUNIT_ASSERT(buffer); + if(osl::FileBase::E_None == aFile.read( buffer, size, size_read)) + { + if(size == size_read) + { + OUString sCode(static_cast<sal_Char*>(buffer), size, RTL_TEXTENCODING_UTF8); + sSource = sCode; + } + } + + free(buffer); + } + } + CPPUNIT_ASSERT_MESSAGE( "Source is empty", ( sSource.getLength() > 0 ) ); + MakeModule( sSource ); +} + +SbxVariableRef MacroSnippet::Run( const css::uno::Sequence< css::uno::Any >& rArgs ) +{ + SbxVariableRef pReturn = nullptr; + if ( !Compile() ) + return pReturn; + SbMethod* pMeth = mpMod ? static_cast<SbMethod*>(mpMod->Find( "doUnitTest", SbxCLASS_METHOD )) : nullptr; + if ( pMeth ) + { + if ( rArgs.getLength() ) + { + SbxArrayRef aArgs = new SbxArray; + for ( int i=0; i < rArgs.getLength(); ++i ) + { + SbxVariable* pVar = new SbxVariable(); + unoToSbxValue( pVar, rArgs[ i ] ); + aArgs->Put( pVar, i + 1 ); + } + pMeth->SetParameters( aArgs ); + } + pReturn = new SbxMethod( *static_cast<SbxMethod*>(pMeth)); + } + return pReturn; +} + +SbxVariableRef MacroSnippet::Run() +{ + css::uno::Sequence< css::uno::Any > aArgs; + return Run( aArgs ); +} + +bool MacroSnippet::Compile() +{ + CPPUNIT_ASSERT_MESSAGE("module is NULL", mpMod != nullptr ); + mpMod->Compile(); + return !mbError; +} + +bool MacroSnippet::HasError() { return mbError; } + +IMPL_LINK_TYPED( MacroSnippet, BasicErrorHdl, StarBASIC *, /*pBasic*/, bool) +{ + fprintf(stderr,"(%d:%d)\n", + StarBASIC::GetLine(), StarBASIC::GetCol1()); + fprintf(stderr,"Basic error: %s\n", OUStringToOString( StarBASIC::GetErrorText(), RTL_TEXTENCODING_UTF8 ).getStr() ); + mbError = true; + return false; +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basic/qa/cppunit/basictest.hxx b/basic/qa/cppunit/basictest.hxx index 2a875599d03f..b287e56f18a1 100644 --- a/basic/qa/cppunit/basictest.hxx +++ b/basic/qa/cppunit/basictest.hxx @@ -19,119 +19,35 @@ #include <basic/sbmod.hxx> #include <basic/sbmeth.hxx> #include <basic/sbuno.hxx> -#include <osl/file.hxx> class MacroSnippet { - private: +private: bool mbError; BasicDLL maDll; // we need a dll instance for resource manager etc. SbModuleRef mpMod; StarBASICRef mpBasic; - void InitSnippet() - { - CPPUNIT_ASSERT_MESSAGE( "No resource manager", maDll.GetBasResMgr() != nullptr ); - mpBasic = new StarBASIC(); - StarBASIC::SetGlobalErrorHdl( LINK( this, MacroSnippet, BasicErrorHdl ) ); - } - void MakeModule( const OUString& sSource ) - { - mpMod = mpBasic->MakeModule( "TestModule", sSource ); - } - public: + void InitSnippet(); + void MakeModule( const OUString& sSource ); - explicit MacroSnippet(const OUString& sSource) - : mbError(false) - { - InitSnippet(); - MakeModule( sSource ); - } - MacroSnippet() : mbError(false) - { - InitSnippet(); - } - void LoadSourceFromFile( const OUString& sMacroFileURL ) - { - OUString sSource; - fprintf(stderr,"loadSource opening macro file %s\n", OUStringToOString( sMacroFileURL, RTL_TEXTENCODING_UTF8 ).getStr() ); +public: + explicit MacroSnippet( const OUString& sSource ); + MacroSnippet(); - osl::File aFile(sMacroFileURL); - if(osl::FileBase::E_None == aFile.open(osl_File_OpenFlag_Read)) - { - sal_uInt64 size; - sal_uInt64 size_read; - if(osl::FileBase::E_None == aFile.getSize(size)) - { - void* buffer = calloc(1, size+1); - CPPUNIT_ASSERT(buffer); - if(osl::FileBase::E_None == aFile.read( buffer, size, size_read)) - { - if(size == size_read) - { - OUString sCode(static_cast<sal_Char*>(buffer), size, RTL_TEXTENCODING_UTF8); - sSource = sCode; - } - } + void LoadSourceFromFile( const OUString& sMacroFileURL ); - free(buffer); - } - } - CPPUNIT_ASSERT_MESSAGE( "Source is empty", ( sSource.getLength() > 0 ) ); - MakeModule( sSource ); - } + SbxVariableRef Run( const css::uno::Sequence< css::uno::Any >& rArgs ); - SbxVariableRef Run( const css::uno::Sequence< css::uno::Any >& rArgs ) - { - SbxVariableRef pReturn = nullptr; - if ( !Compile() ) - return pReturn; - SbMethod* pMeth = mpMod ? static_cast<SbMethod*>(mpMod->Find( "doUnitTest", SbxCLASS_METHOD )) : nullptr; - if ( pMeth ) - { - if ( rArgs.getLength() ) - { - SbxArrayRef aArgs = new SbxArray; - for ( int i=0; i < rArgs.getLength(); ++i ) - { - SbxVariable* pVar = new SbxVariable(); - unoToSbxValue( pVar, rArgs[ i ] ); - aArgs->Put( pVar, i + 1 ); - } - pMeth->SetParameters( aArgs ); - } - pReturn = new SbxMethod( *static_cast<SbxMethod*>(pMeth)); - } - return pReturn; - } + SbxVariableRef Run(); - SbxVariableRef Run() - { - css::uno::Sequence< css::uno::Any > aArgs; - return Run( aArgs ); - } - - bool Compile() - { - CPPUNIT_ASSERT_MESSAGE("module is NULL", mpMod != nullptr ); - mpMod->Compile(); - return !mbError; - } + bool Compile(); DECL_LINK_TYPED( BasicErrorHdl, StarBASIC *, bool ); - bool HasError() { return mbError; } - + bool HasError(); }; -IMPL_LINK_TYPED( MacroSnippet, BasicErrorHdl, StarBASIC *, /*pBasic*/, bool) -{ - fprintf(stderr,"(%d:%d)\n", - StarBASIC::GetLine(), StarBASIC::GetCol1()); - fprintf(stderr,"Basic error: %s\n", OUStringToOString( StarBASIC::GetErrorText(), RTL_TEXTENCODING_UTF8 ).getStr() ); - mbError = true; - return false; -} #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basic/qa/cppunit/test_append.cxx b/basic/qa/cppunit/test_append.cxx index 0ced150271b7..98b96c468d4c 100644 --- a/basic/qa/cppunit/test_append.cxx +++ b/basic/qa/cppunit/test_append.cxx @@ -65,7 +65,6 @@ void EnableTest::testDimEnable() // Put the test suite in the registry CPPUNIT_TEST_SUITE_REGISTRATION(EnableTest); -} // namespace -CPPUNIT_PLUGIN_IMPLEMENT(); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basic/qa/cppunit/test_nested_struct.cxx b/basic/qa/cppunit/test_nested_struct.cxx index 85a196840e8b..aaa3ca87a16c 100644 --- a/basic/qa/cppunit/test_nested_struct.cxx +++ b/basic/qa/cppunit/test_nested_struct.cxx @@ -302,7 +302,6 @@ void Nested_Struct::testUnoAccess() // Put the test suite in the registry CPPUNIT_TEST_SUITE_REGISTRATION(Nested_Struct); -} // namespace -CPPUNIT_PLUGIN_IMPLEMENT(); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basic/qa/cppunit/test_vba.cxx b/basic/qa/cppunit/test_vba.cxx index e45808d4f309..2b7ba5815863 100644 --- a/basic/qa/cppunit/test_vba.cxx +++ b/basic/qa/cppunit/test_vba.cxx @@ -7,15 +7,13 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "basictest.hxx" -#include <vcl/svapp.hxx> -#include <vcl/settings.hxx> #include <comphelper/processfactory.hxx> +#include <unotools/syslocaleoptions.hxx> + using namespace ::com::sun::star; namespace { - - class VBATest : public test::BootstrapFixture { public: @@ -58,9 +56,10 @@ void VBATest::testMiscVBAFunctions() }; OUString sMacroPathURL = getURLFromSrc("/basic/qa/vba_tests/"); // Some test data expects the uk locale - AllSettings aSettings = Application::GetSettings(); - aSettings.SetLanguageTag( LanguageTag( LANGUAGE_ENGLISH_UK ) ); - Application::SetSettings( aSettings ); + LanguageTag aLocale(LANGUAGE_ENGLISH_UK); + SvtSysLocaleOptions aLocalOptions; + aLocalOptions.SetLocaleConfigString( aLocale.getBcp47() ); + for ( sal_uInt32 i=0; i<SAL_N_ELEMENTS( macroSource ); ++i ) { OUString sMacroURL( sMacroPathURL ); @@ -142,10 +141,7 @@ void VBATest::testMiscOLEStuff() } // Put the test suite in the registry - - // Put the test suite in the registry CPPUNIT_TEST_SUITE_REGISTRATION(VBATest); -} // namespace -CPPUNIT_PLUGIN_IMPLEMENT(); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |