summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-03-05 12:19:05 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-03-05 14:25:02 +0100
commitddd43218e9900536381733735adf8681d345e775 (patch)
tree5bb211e63d9b739d20eb248f1ab9f0fb481e118d /comphelper
parent9c036b1d3db253a1fd43ce76ce1d919e2029af59 (diff)
drop sax::tools::*base64 methods
and use the underlying comphelper methods rather. This is so that I can break the dependency that tools has on sax, and can add methods that make sax depend on tools. Change-Id: I8a2d6ce2ffc3529a0020710ade6a1748ee5af7d5 Reviewed-on: https://gerrit.libreoffice.org/50767 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'comphelper')
-rw-r--r--comphelper/CppunitTest_comphelper_test.mk1
-rw-r--r--comphelper/qa/unit/base64_test.cxx106
2 files changed, 107 insertions, 0 deletions
diff --git a/comphelper/CppunitTest_comphelper_test.mk b/comphelper/CppunitTest_comphelper_test.mk
index 00dc27e5e7b1..956aeb374a63 100644
--- a/comphelper/CppunitTest_comphelper_test.mk
+++ b/comphelper/CppunitTest_comphelper_test.mk
@@ -13,6 +13,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,comphelper_test, \
comphelper/qa/string/test_string \
comphelper/qa/container/testifcontainer \
comphelper/qa/unit/test_hash \
+ comphelper/qa/unit/base64_test \
))
$(eval $(call gb_CppunitTest_use_sdk_api,comphelper_test))
diff --git a/comphelper/qa/unit/base64_test.cxx b/comphelper/qa/unit/base64_test.cxx
new file mode 100644
index 000000000000..b3f2143d4a41
--- /dev/null
+++ b/comphelper/qa/unit/base64_test.cxx
@@ -0,0 +1,106 @@
+/* -*- 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 <limits>
+
+#include <sal/types.h>
+#include <cppunit/TestAssert.h>
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/plugin/TestPlugIn.h>
+
+#include <rtl/ustrbuf.hxx>
+
+#include <com/sun/star/util/DateTime.hpp>
+#include <com/sun/star/util/Date.hpp>
+#include <com/sun/star/util/Duration.hpp>
+#include <com/sun/star/util/MeasureUnit.hpp>
+
+#include <comphelper/sequence.hxx>
+#include <comphelper/base64.hxx>
+#include <sal/log.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::util;
+
+
+namespace {
+
+class Base64Test
+ : public ::CppUnit::TestFixture
+{
+public:
+
+ void testBase64();
+
+ CPPUNIT_TEST_SUITE(Base64Test);
+ CPPUNIT_TEST(testBase64);
+ CPPUNIT_TEST_SUITE_END();
+
+private:
+};
+
+
+
+void doTestEncodeBase64(char const*const pis, const uno::Sequence<sal_Int8>& aPass)
+{
+ OUString const is(OUString::createFromAscii(pis));
+ OUStringBuffer buf;
+ comphelper::Base64::encode(buf, aPass);
+ SAL_INFO("sax.cppunit","" << buf.toString());
+ CPPUNIT_ASSERT_EQUAL(is, buf.makeStringAndClear());
+}
+
+void doTestDecodeBase64(const uno::Sequence<sal_Int8>& aPass, char const*const pis)
+{
+ OUString const is(OUString::createFromAscii(pis));
+ uno::Sequence< sal_Int8 > tempSequence;
+ comphelper::Base64::decode(tempSequence, is);
+ SAL_INFO("sax.cppunit","" << is);
+ bool b = (tempSequence==aPass);
+ CPPUNIT_ASSERT(b);
+}
+
+void Base64Test::testBase64()
+{
+ std::vector< sal_Int8 > tempSeq { 0, 0, 0, 0, 0, 1, 2, 3 };
+ uno::Sequence< sal_Int8 > tempSequence = comphelper::containerToSequence(tempSeq);
+ doTestEncodeBase64("AAAAAAABAgM=", tempSequence);
+ doTestDecodeBase64(tempSequence, "AAAAAAABAgM=");
+ tempSeq[0] = sal_Int8(5);
+ tempSeq[1] = sal_Int8(2);
+ tempSeq[2] = sal_Int8(3);
+ tempSequence = comphelper::containerToSequence(tempSeq);
+ doTestEncodeBase64("BQIDAAABAgM=", tempSequence);
+ doTestDecodeBase64(tempSequence, "BQIDAAABAgM=");
+ tempSeq[0] = sal_Int8(sal_uInt8(200));
+ tempSeq[1] = sal_Int8(31);
+ tempSeq[2] = sal_Int8(77);
+ tempSeq[3] = sal_Int8(111);
+ tempSequence = comphelper::containerToSequence(tempSeq);
+ doTestEncodeBase64("yB9NbwABAgM=", tempSequence);
+ doTestDecodeBase64(tempSequence, "yB9NbwABAgM=");
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(Base64Test);
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */