summaryrefslogtreecommitdiff
path: root/shell/qa/zip
diff options
context:
space:
mode:
Diffstat (limited to 'shell/qa/zip')
-rw-r--r--shell/qa/zip/export.map27
-rw-r--r--shell/qa/zip/makefile.mk58
-rw-r--r--shell/qa/zip/simpledocument.odtbin0 -> 16259 bytes
-rw-r--r--shell/qa/zip/testimpl/makefile.mk52
-rw-r--r--shell/qa/zip/testimpl/testzipimpl.cxx72
-rw-r--r--shell/qa/zip/testimpl/testzipimpl.hxx45
-rw-r--r--shell/qa/zip/ziptest.cxx76
7 files changed, 330 insertions, 0 deletions
diff --git a/shell/qa/zip/export.map b/shell/qa/zip/export.map
new file mode 100644
index 000000000000..bfcb0b000f0b
--- /dev/null
+++ b/shell/qa/zip/export.map
@@ -0,0 +1,27 @@
+#
+# 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 .
+#
+
+
+
+UDK_3_0_0 {
+ global:
+ cppunitTestPlugIn;
+
+ local:
+ *;
+};
diff --git a/shell/qa/zip/makefile.mk b/shell/qa/zip/makefile.mk
new file mode 100644
index 000000000000..4039b918bab6
--- /dev/null
+++ b/shell/qa/zip/makefile.mk
@@ -0,0 +1,58 @@
+#
+# 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/simpledocument.odt b/shell/qa/zip/simpledocument.odt
new file mode 100644
index 000000000000..bf83a648b7ed
--- /dev/null
+++ b/shell/qa/zip/simpledocument.odt
Binary files differ
diff --git a/shell/qa/zip/testimpl/makefile.mk b/shell/qa/zip/testimpl/makefile.mk
new file mode 100644
index 000000000000..cf07233b20dd
--- /dev/null
+++ b/shell/qa/zip/testimpl/makefile.mk
@@ -0,0 +1,52 @@
+#
+# 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
new file mode 100644
index 000000000000..241c4d50d00a
--- /dev/null
+++ b/shell/qa/zip/testimpl/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<string> 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<string> &stringVector = *contents.get();
+ sort(stringVector.begin(), stringVector.end());
+ return expectedContents == expectedContents;
+}
+
+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
new file mode 100644
index 000000000000..584305cbe27b
--- /dev/null
+++ b/shell/qa/zip/testimpl/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 <string>
+#include <vector>
+#include <algorithm>
+#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/ziptest.cxx b/shell/qa/zip/ziptest.cxx
new file mode 100644
index 000000000000..2a1ff25cdb53
--- /dev/null
+++ b/shell/qa/zip/ziptest.cxx
@@ -0,0 +1,76 @@
+/* -*- 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 "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
+#include <string>
+#include "testimpl/testzipimpl.hxx"
+using namespace std;
+
+class Test : public CppUnit::TestFixture
+{
+private:
+ string documentName;
+public:
+ Test();
+ void setUp() {}
+ void tearDown() {}
+ void test_directory();
+ void test_hasContentCaseInSensitive();
+ void test_getContent();
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(test_directory);
+ CPPUNIT_TEST(test_hasContentCaseInSensitive);
+ CPPUNIT_TEST(test_getContent);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
+
+Test::Test() :
+ documentName("simpledocument.odt")
+{
+}
+
+void Test::test_directory()
+{
+ TestZipImpl testImpl(documentName.c_str());
+ bool isPassed = testImpl.test_directory();
+ CPPUNIT_ASSERT_MESSAGE("Content does not match with expected directory names.", isPassed);
+}
+
+void Test::test_hasContentCaseInSensitive()
+{
+ TestZipImpl testImpl(documentName.c_str());
+ bool isPassed = testImpl.test_hasContentCaseInSensitive();
+ CPPUNIT_ASSERT_MESSAGE("Content in zip file was not found.", isPassed);
+}
+
+void Test::test_getContent()
+{
+ TestZipImpl testImpl(documentName.c_str());
+ bool isPassed = testImpl.test_getContent();
+ CPPUNIT_ASSERT_MESSAGE("Couldn't recieve content buffer form zipfile.", isPassed);
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */