summaryrefslogtreecommitdiff
path: root/shell/qa/zip/testimpl
diff options
context:
space:
mode:
Diffstat (limited to 'shell/qa/zip/testimpl')
-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
3 files changed, 169 insertions, 0 deletions
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: */