From 2adf469b425a8986c68f3f9ffdb8c389f84d6f4e Mon Sep 17 00:00:00 2001 From: Fridrich Štrba Date: Thu, 18 Jul 2013 12:19:57 +0200 Subject: Try to make the ziptest a bit more generic Change-Id: I2a380ebcc2b32fbb8e1c0ae6b83b5f34291e5d1d --- shell/CppunitTest_shell_zip.mk | 8 +--- shell/qa/zip/makefile.mk | 58 ---------------------------- shell/qa/zip/testimpl/makefile.mk | 52 ------------------------- shell/qa/zip/testimpl/testzipimpl.cxx | 72 ----------------------------------- shell/qa/zip/testimpl/testzipimpl.hxx | 45 ---------------------- shell/qa/zip/testzipimpl.cxx | 72 +++++++++++++++++++++++++++++++++++ shell/qa/zip/testzipimpl.hxx | 45 ++++++++++++++++++++++ shell/qa/zip/ziptest.cxx | 30 ++++++++------- 8 files changed, 135 insertions(+), 247 deletions(-) delete mode 100644 shell/qa/zip/makefile.mk delete mode 100644 shell/qa/zip/testimpl/makefile.mk delete mode 100644 shell/qa/zip/testimpl/testzipimpl.cxx delete mode 100644 shell/qa/zip/testimpl/testzipimpl.hxx create mode 100644 shell/qa/zip/testzipimpl.cxx create mode 100644 shell/qa/zip/testzipimpl.hxx (limited to 'shell') diff --git a/shell/CppunitTest_shell_zip.mk b/shell/CppunitTest_shell_zip.mk index 52f6d72d9e09..7e5d6dc6a0ba 100644 --- a/shell/CppunitTest_shell_zip.mk +++ b/shell/CppunitTest_shell_zip.mk @@ -10,7 +10,7 @@ $(eval $(call gb_CppunitTest_CppunitTest,zip)) $(eval $(call gb_CppunitTest_add_exception_objects,zip, \ - shell/qa/zip/testimpl/testzipimpl \ + shell/qa/zip/testzipimpl \ shell/qa/zip/ziptest \ )) @@ -26,14 +26,8 @@ $(eval $(call gb_CppunitTest_use_externals,zip,\ )) $(eval $(call gb_CppunitTest_use_system_win32_libs,zip, \ - advapi32 \ - comctl32 \ kernel32 \ msvcprt \ - oldnames \ - ole32 \ - shell32 \ - uuid \ )) $(eval $(call gb_CppunitTest_use_static_libraries,zip,\ diff --git a/shell/qa/zip/makefile.mk b/shell/qa/zip/makefile.mk deleted file mode 100644 index 4039b918bab6..000000000000 --- a/shell/qa/zip/makefile.mk +++ /dev/null @@ -1,58 +0,0 @@ -# -# 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/. -# -# This file incorporates work covered by the following license notice: -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed -# with this work for additional information regarding copyright -# ownership. The ASF licenses this file to you under the Apache -# License, Version 2.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.apache.org/licenses/LICENSE-2.0 . -# - - -PRJ=../.. - -PRJNAME=shell -TARGET=qa_zip -ENABLE_EXCEPTIONS=TRUE -#USE_STLP_DEBUG= -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(WITH_CPPUNIT)" != "YES" || "$(GUI)" == "OS2" - -@all: -.IF "$(GUI)" == "OS2" - @echo "Skipping, cppunit broken." -.ELIF "$(WITH_CPPUNIT)" != "YES" - @echo "cppunit disabled. nothing do do." -.END - -.ELSE - -CFLAGSCXX += $(CPPUNIT_CFLAGS) - -SHL1OBJS = $(SLOFILES) -SHL1RPATH = NONE -SHL1STDLIBS = $(SALLIB) $(CPPUNITLIB) -SHL1LIBS = $(SLB)$/..$/lib$/iqa_zipimpl.lib -SHL1TARGET = $(TARGET) -SHL1VERSIONMAP = $(PRJ)/qa/zip/export.map -DEF1NAME=$(SHL1TARGET) -SLOFILES=$(SLO)$/ziptest.obj - -.ENDIF - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk -.INCLUDE: _cppunit.mk - diff --git a/shell/qa/zip/testimpl/makefile.mk b/shell/qa/zip/testimpl/makefile.mk deleted file mode 100644 index cf07233b20dd..000000000000 --- a/shell/qa/zip/testimpl/makefile.mk +++ /dev/null @@ -1,52 +0,0 @@ -# -# 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/. -# -# This file incorporates work covered by the following license notice: -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed -# with this work for additional information regarding copyright -# ownership. The ASF licenses this file to you under the Apache -# License, Version 2.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.apache.org/licenses/LICENSE-2.0 . -# - - -PRJ=../../.. - -PRJNAME=shell -TARGET=qa_zipimpl -LIBTARGET=NO -ENABLE_EXCEPTIONS=TRUE -.IF "$(OS)" == "WNT" - NO_DEFAULT_STL=TRUE - USE_STLP_DEBUG= -.ENDIF -USE_DEFFILE=TRUE -# --- Settings ----------------------------------------------------- -.INCLUDE : settings.mk -UWINAPILIB = - -SHL1IMPLIB = i$(SHL1TARGET) -SHL1OBJS = $(SLOFILES) -SHL1RPATH = NONE -.IF "$(OS)" == "WNT" - SHL1STDLIBS = msvcprt.lib -.ENDIF -SHL1LIBS = $(SOLARLIBDIR)$/zlib.lib $(SLB)$/zipfile.lib -SLOFILES=$(SLO)$/testzipimpl.obj -SHL1TARGET = $(TARGET) -DEF1NAME=$(SHL1TARGET) -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk -.IF "$(OS)" == "WNT" - INCLUDE!:=$(subst,/stl, $(INCLUDE)) - .EXPORT : INCLUDE -.ENDIF - diff --git a/shell/qa/zip/testimpl/testzipimpl.cxx b/shell/qa/zip/testimpl/testzipimpl.cxx deleted file mode 100644 index 9aaa9db92d6b..000000000000 --- a/shell/qa/zip/testimpl/testzipimpl.cxx +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#define DLLIMPLEMENTATION -#include "testzipimpl.hxx" - -vector expectedContents; - -TestZipImpl::TestZipImpl(const char * documentName) : - zipFile(ZipFile(string(documentName))) -{ - expectedContents.push_back("mimetype"); - expectedContents.push_back("Configurations2/statusbar/"); - expectedContents.push_back("Configurations2/accelerator/current.xml"); - expectedContents.push_back("Configurations2/floater/"); - expectedContents.push_back("Configurations2/popupmenu/"); - expectedContents.push_back("Configurations2/progressbar/"); - expectedContents.push_back("Configurations2/toolpanel/"); - expectedContents.push_back("Configurations2/menubar/"); - expectedContents.push_back("Configurations2/toolbar/"); - expectedContents.push_back("Configurations2/images/Bitmaps/"); - expectedContents.push_back("content.xml"); - expectedContents.push_back("manifest.rdf"); - expectedContents.push_back("styles.xml"); - expectedContents.push_back("meta.xml"); - expectedContents.push_back("Thumbnails/thumbnail.png"); - expectedContents.push_back("settings.xml"); - expectedContents.push_back("META-INF/manifest.xml"); - sort(expectedContents.begin(), expectedContents.end()); -} - -TestZipImpl::~TestZipImpl() -{ -} - -bool TestZipImpl::test_directory() -{ - ZipFile::DirectoryPtr_t contents = zipFile.GetDirectory(); - vector &stringVector = *contents.get(); - sort(stringVector.begin(), stringVector.end()); - return expectedContents == stringVector; -} - -bool TestZipImpl::test_hasContentCaseInSensitive() -{ - return zipFile.HasContent("mimetype"); -} - -bool TestZipImpl::test_getContent() -{ - ZipFile::ZipContentBuffer_t contentBuf; - zipFile.GetUncompressedContent("content.xml", contentBuf); - return !contentBuf.empty(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/shell/qa/zip/testimpl/testzipimpl.hxx b/shell/qa/zip/testimpl/testzipimpl.hxx deleted file mode 100644 index 584305cbe27b..000000000000 --- a/shell/qa/zip/testimpl/testzipimpl.hxx +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- 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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "internal/zipfile.hxx" -#include -#include -#include -#include "sal/types.h" -#if defined(DLLIMPLEMENTATION) - #define DLLPUBLIC SAL_DLLPUBLIC_EXPORT -#else - #define DLLPUBLIC SAL_DLLPUBLIC_IMPORT -#endif - -using namespace std; - -class DLLPUBLIC TestZipImpl -{ - private: - ZipFile zipFile; - public: - TestZipImpl(const char * documentName); - ~TestZipImpl(); - bool test_directory(); - bool test_hasContentCaseInSensitive(); - bool test_getContent(); -}; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/shell/qa/zip/testzipimpl.cxx b/shell/qa/zip/testzipimpl.cxx new file mode 100644 index 000000000000..dea673960a64 --- /dev/null +++ b/shell/qa/zip/testzipimpl.cxx @@ -0,0 +1,72 @@ +/* -*- 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/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#define DLLIMPLEMENTATION +#include "testzipimpl.hxx" + +vector expectedContents; + +TestZipImpl::TestZipImpl(StreamInterface *stream) : + zipFile(ZipFile(stream)) +{ + expectedContents.push_back("mimetype"); + expectedContents.push_back("Configurations2/statusbar/"); + expectedContents.push_back("Configurations2/accelerator/current.xml"); + expectedContents.push_back("Configurations2/floater/"); + expectedContents.push_back("Configurations2/popupmenu/"); + expectedContents.push_back("Configurations2/progressbar/"); + expectedContents.push_back("Configurations2/toolpanel/"); + expectedContents.push_back("Configurations2/menubar/"); + expectedContents.push_back("Configurations2/toolbar/"); + expectedContents.push_back("Configurations2/images/Bitmaps/"); + expectedContents.push_back("content.xml"); + expectedContents.push_back("manifest.rdf"); + expectedContents.push_back("styles.xml"); + expectedContents.push_back("meta.xml"); + expectedContents.push_back("Thumbnails/thumbnail.png"); + expectedContents.push_back("settings.xml"); + expectedContents.push_back("META-INF/manifest.xml"); + sort(expectedContents.begin(), expectedContents.end()); +} + +TestZipImpl::~TestZipImpl() +{ +} + +bool TestZipImpl::test_directory() +{ + ZipFile::DirectoryPtr_t contents = zipFile.GetDirectory(); + vector &stringVector = *contents.get(); + sort(stringVector.begin(), stringVector.end()); + return expectedContents == stringVector; +} + +bool TestZipImpl::test_hasContentCaseInSensitive() +{ + return zipFile.HasContent("mimetype"); +} + +bool TestZipImpl::test_getContent() +{ + ZipFile::ZipContentBuffer_t contentBuf; + zipFile.GetUncompressedContent("content.xml", contentBuf); + return !contentBuf.empty(); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/shell/qa/zip/testzipimpl.hxx b/shell/qa/zip/testzipimpl.hxx new file mode 100644 index 000000000000..d8a2e5f3daa0 --- /dev/null +++ b/shell/qa/zip/testzipimpl.hxx @@ -0,0 +1,45 @@ +/* -*- 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/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include "internal/zipfile.hxx" +#include +#include +#include +#include "sal/types.h" +#if defined(DLLIMPLEMENTATION) + #define DLLPUBLIC SAL_DLLPUBLIC_EXPORT +#else + #define DLLPUBLIC SAL_DLLPUBLIC_IMPORT +#endif + +using namespace std; + +class DLLPUBLIC TestZipImpl +{ + private: + ZipFile zipFile; + public: + TestZipImpl(StreamInterface *stream); + ~TestZipImpl(); + bool test_directory(); + bool test_hasContentCaseInSensitive(); + bool test_getContent(); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/shell/qa/zip/ziptest.cxx b/shell/qa/zip/ziptest.cxx index 457833afb2fd..d7ed38e4d338 100644 --- a/shell/qa/zip/ziptest.cxx +++ b/shell/qa/zip/ziptest.cxx @@ -22,7 +22,8 @@ #include "cppunit/extensions/HelperMacros.h" #include "cppunit/plugin/TestPlugIn.h" #include -#include "testimpl/testzipimpl.hxx" +#include "internal/stream_helper.hxx" +#include "testzipimpl.hxx" using namespace std; class Test : public CppUnit::TestFixture @@ -33,13 +34,13 @@ public: Test(); void setUp() {} void tearDown() {} - void test_directory(); - void test_hasContentCaseInSensitive(); - void test_getContent(); + void test_file_directory(); + void test_file_hasContentCaseInSensitive(); + void test_file_getContent(); CPPUNIT_TEST_SUITE(Test); - CPPUNIT_TEST(test_directory); - CPPUNIT_TEST(test_hasContentCaseInSensitive); - CPPUNIT_TEST(test_getContent); + CPPUNIT_TEST(test_file_directory); + CPPUNIT_TEST(test_file_hasContentCaseInSensitive); + CPPUNIT_TEST(test_file_getContent); CPPUNIT_TEST_SUITE_END(); }; @@ -56,23 +57,26 @@ Test::Test() : documentName() documentName.append("shell/qa/zip/simpledocument.odt"); } -void Test::test_directory() +void Test::test_file_directory() { - TestZipImpl testImpl(documentName.c_str()); + FileStream stream(documentName.c_str()); + TestZipImpl testImpl(&stream); bool isPassed = testImpl.test_directory(); CPPUNIT_ASSERT_MESSAGE("Content does not match with expected directory names.", isPassed); } -void Test::test_hasContentCaseInSensitive() +void Test::test_file_hasContentCaseInSensitive() { - TestZipImpl testImpl(documentName.c_str()); + FileStream stream(documentName.c_str()); + TestZipImpl testImpl(&stream); bool isPassed = testImpl.test_hasContentCaseInSensitive(); CPPUNIT_ASSERT_MESSAGE("Content in zip file was not found.", isPassed); } -void Test::test_getContent() +void Test::test_file_getContent() { - TestZipImpl testImpl(documentName.c_str()); + FileStream stream(documentName.c_str()); + TestZipImpl testImpl(&stream); bool isPassed = testImpl.test_getContent(); CPPUNIT_ASSERT_MESSAGE("Couldn't receive content buffer form zipfile.", isPassed); } -- cgit