aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-06-10 18:41:43 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-06-17 17:44:48 -0300
commitc41a765a198af87f59857f251f695d5e2dbca3c3 (patch)
treebb1cfb03ce46876cab0994718c3c156a4269b427 /tests
parentdca3033db3d4f3562c838b9ee910482d8c96bc70 (diff)
Created unit tests for named arguments.
Reviewers: Luciano Wolf <luciano.wolf@openbossa.org>, Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/libsample/objecttype.cpp35
-rw-r--r--tests/libsample/objecttype.h6
-rwxr-xr-xtests/samplebinding/objecttype_with_named_args_test.py67
3 files changed, 104 insertions, 4 deletions
diff --git a/tests/libsample/objecttype.cpp b/tests/libsample/objecttype.cpp
index 5ff3c2f19..4c608037e 100644
--- a/tests/libsample/objecttype.cpp
+++ b/tests/libsample/objecttype.cpp
@@ -36,6 +36,7 @@
#include "objecttypelayout.h"
#include <algorithm>
#include <iostream>
+#include <string>
using namespace std;
@@ -177,7 +178,8 @@ ObjectType::processEvent(ObjectTypeList objects, Event *event)
}
-void ObjectType::setLayout(ObjectTypeLayout* l)
+void
+ObjectType::setLayout(ObjectTypeLayout* l)
{
if (!l) {
cerr << "[WARNING] ObjectType::setLayout: Cannot set layout to 0." << endl;
@@ -221,15 +223,40 @@ ObjectTypeLayout* ObjectType::takeLayout()
return l;
}
-unsigned int objectTypeHash(const ObjectType* objectType)
+unsigned int
+objectTypeHash(const ObjectType* objectType)
{
return reinterpret_cast<std::size_t>(objectType);
}
-unsigned char ObjectType::callWithEnum(const Str& prefix, Event::EventType type, unsigned char value){
+unsigned char
+ObjectType::callWithEnum(const Str& prefix, Event::EventType type, unsigned char value){
return value*value;
}
-unsigned char ObjectType::callWithEnum(const Str& prefix, unsigned char value) {
+unsigned char
+ObjectType::callWithEnum(const Str& prefix, unsigned char value) {
return value;
}
+
+void
+ObjectType::setObjectSplittedName(const char*, const Str& prefix, const Str& suffix)
+{
+ std::string result(prefix.cstring());
+ result += suffix.cstring();
+ m_objectName = result.c_str();
+}
+
+void
+ObjectType::setObjectNameWithSize(const char*, int size, const Str& name)
+{
+ std::string result(name.cstring(), size);
+ m_objectName = result.c_str();
+}
+
+void
+ObjectType::setObjectNameWithSize(const Str& name, int size)
+{
+ setObjectNameWithSize("", size, name);
+}
+
diff --git a/tests/libsample/objecttype.h b/tests/libsample/objecttype.h
index 8b9eda117..18454a121 100644
--- a/tests/libsample/objecttype.h
+++ b/tests/libsample/objecttype.h
@@ -100,6 +100,12 @@ public:
unsigned char callWithEnum(const Str& prefix, Event::EventType type, unsigned char value=80);
unsigned char callWithEnum(const Str& prefix, unsigned char value=0);
+ //Functions used in test with named arguments
+ void setObjectSplittedName(const char*, const Str& prefix = Str("<unk"), const Str& suffix = Str("nown>"));
+ void setObjectNameWithSize(const char*, int size=9, const Str& name = Str("<unknown>"));
+ void setObjectNameWithSize(const Str& name = Str("<unknown>"), int size=9);
+
+
private:
ObjectType(const ObjectType&);
ObjectType& operator=(const ObjectType&);
diff --git a/tests/samplebinding/objecttype_with_named_args_test.py b/tests/samplebinding/objecttype_with_named_args_test.py
new file mode 100755
index 000000000..287bd199c
--- /dev/null
+++ b/tests/samplebinding/objecttype_with_named_args_test.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# This file is part of the Shiboken Python Bindings Generator project.
+#
+# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+#
+# Contact: PySide team <contact@pyside.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# version 2.1 as published by the Free Software Foundation. Please
+# review the following information to ensure the GNU Lesser General
+# Public License version 2.1 requirements will be met:
+# http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+# #
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA
+
+import unittest
+
+from sample import ObjectType
+
+class NamedArgsTest(unittest.TestCase):
+
+ def testOneArgument(self):
+ p = ObjectType()
+ o = ObjectType(parent=p)
+ self.assertEqual(o.parent(), p)
+
+ def testMoreArguments(self):
+ o = ObjectType()
+
+ o.setObjectSplittedName("", prefix="pys", suffix="ide")
+ self.assertEqual(o.objectName(), "pyside")
+
+ o.setObjectSplittedName("", suffix="ide", prefix="pys")
+ self.assertEqual(o.objectName(), "pyside")
+
+ o.setObjectNameWithSize(name="pyside", size=6)
+ self.assertEqual(o.objectName(), "pyside")
+
+ o.setObjectNameWithSize(size=6, name="pyside")
+ self.assertEqual(o.objectName(), "pyside")
+
+
+ def testUseDefaultValues(self):
+ o = ObjectType()
+
+ o.setObjectNameWithSize(size=3)
+ self.assertEqual(o.objectName(), "<un") # use name='unknown' default argument
+
+ o.setObjectSplittedName("")
+ self.assertEqual(o.objectName(), "<unknown>") # user prefix='<unk' and suffix='nown>'
+
+
+
+if __name__ == '__main__':
+ unittest.main()
+