--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/configurationengine/source/cone/public/tests/unittest_views.py Thu Mar 11 17:04:37 2010 +0200
@@ -0,0 +1,208 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+"""
+Test the configuration
+"""
+import unittest
+import string
+import sys,os
+import __init__
+
+from cone.public import api,exceptions,utils
+
+class TestViews(unittest.TestCase):
+ def setUp(self):
+ pass
+
+ def test_create_view(self):
+ view = api.View("view1")
+ self.assertTrue(view)
+ self.assertTrue(view.ref, "view1")
+
+ def test_view_add(self):
+ view = api.View("view1")
+ view._add(api.Group("Test"))
+ self.assertEquals(view._list(),['Test'])
+
+# def test_view_add_child_incorrect_class(self):
+# view = api.View("view1")
+# try:
+# view._add(api.Feature("Test"))
+# self.fail("Adding incorrect class succeeds!")
+# except exceptions.IncorrectClassError,e:
+# pass
+
+# def test_group_add_child_incorrect_class(self):
+# group = api.Group("Group")
+# try:
+# group._add(api.Feature("Test"))
+# self.fail("Adding incorrect class succeeds!")
+# except exceptions.IncorrectClassError,e:
+# pass
+
+# def test_feature_add_child_incorrect_class(self):
+# feature = api.Feature("Feature")
+# try:
+# feature._add(api.Group("Test"))
+# self.fail("Adding incorrect class succeeds! This succeeds because of Base class support in model.")
+# except exceptions.IncorrectClassError,e:
+# pass
+
+ def test_feature_add(self):
+ feature = api.Feature("Feature")
+ feature._add(api.Feature("Test"))
+ self.assertEquals(feature._list(),['Test'])
+
+ def test_view_add_groups_and_features_and_list_all(self):
+ view = api.View("view1")
+ view._add(api.Group("group1"))
+ view._add(api.Group("group2"))
+ view._add(api._FeatureProxy("feature1"))
+ view.group1._add(api.Group("group21"))
+ view.group1.group21._add(api._FeatureProxy("feature211"))
+ view.group1.group21._add(api._FeatureProxy("feature212"))
+ view.feature1._add(api._FeatureProxy("feature11"))
+ self.assertEquals(sorted(view._list_traverse()),
+ sorted(['group1',
+ 'group2',
+ 'feature1',
+ 'group1.group21',
+ 'group1.group21.feature211',
+ 'group1.group21.feature212',
+ 'feature1.feature11']))
+
+ def test_view_add_groups_and_features_and_list_features(self):
+ view = api.View("view1")
+ view._add(api.Group("group1"))
+ view._add(api.Group("group2"))
+ view._add(api._FeatureProxy("feature1"))
+ view.group1._add(api.Group("group21"))
+ view.group1.group21._add(api._FeatureProxy("feature211"))
+ view.group1.group21._add(api._FeatureProxy("feature212"))
+ view.feature1._add(api._FeatureProxy("feature11"))
+ self.assertEquals(sorted(view.list_all_features()),
+ sorted(['feature1',
+ 'group1.group21.feature211',
+ 'group1.group21.feature212',
+ 'feature1.feature11']))
+
+
+ def test_view_add_features_with_view_add_feature(self):
+ view = api.View("view1")
+ view.add_feature(api.Feature("feature1"))
+ view.add_feature(api.Feature("feature2"), "com.nokia.s60")
+ view.com.nokia.s60.feature2.add_feature(api.Feature("feature21"))
+ self.assertEquals(sorted(view.list_all_features()),
+ sorted(['feature1',
+ 'com.nokia.s60.feature2',
+ 'com.nokia.s60.feature2.feature21',
+ ]))
+
+
+ def test_view_add_features_and_get_features(self):
+ view = api.View("view1")
+ view.add_feature(api.Feature("feature1"))
+ view.add_feature(api.Feature("feature2"), "com.nokia.s60")
+ view.com.nokia.s60.feature2.add_feature(api.Feature("feature21"))
+ self.assertEquals(view.get_feature("com.nokia.s60.feature2"), view.com.nokia.s60.feature2)
+
+ def test_view_get_features(self):
+ view = api.View("view1")
+ view.add_feature(api.Feature("feature1",type='boolean'))
+ view.add_feature(api.Feature("feature2"))
+ view.add_feature(api.Feature("feature11", type='boolean'),"feature1")
+ view.add_feature(api.Feature("feature12"),"feature1")
+ self.assertEquals(view.get_features("feature2"), [view.feature2])
+ self.assertEquals(view.get_features("feature2.*"), [])
+ self.assertEquals(view.get_features("feature1.*"), [view.feature1.feature11, view.feature1.feature12])
+ self.assertEquals(view.get_features("feature1.*", name='feature11'), [view.feature1.feature11])
+ self.assertEquals(view.get_features("**", filters=[lambda x: x.get_type()=='boolean']),
+ [view.feature1,
+ view.feature1.feature11])
+
+ def test_view_add_features_and_remove_features(self):
+ view = api.View("view1")
+ view.add_feature(api.Feature("feature1"))
+ view.add_feature(api.Feature("feature2"), "com.nokia.s60")
+ view.com.nokia.s60.feature2.add_feature(api.Feature("feature21"))
+
+ self.assertEquals(view.list_all_features(),['feature1', 'com.nokia.s60.feature2', 'com.nokia.s60.feature2.feature21'])
+ self.assertEquals(view.get_group("com.nokia.s60").list_features(),['feature2'])
+ for fearef in view.list_features():
+ view.remove_feature(fearef)
+ self.assertEquals(view.list_all_features(),['com.nokia.s60.feature2', 'com.nokia.s60.feature2.feature21'])
+
+ def test_view_add_groups_remove_groups(self):
+ view = api.View("view1")
+ view.add_group("Group one")
+ view.add_group("Group two")
+ view.add_feature(api.Feature("feature2"),"Group one")
+ self.assertEquals(view.list_groups(),['Group one', 'Group two'])
+ view.remove_group("Group two")
+ self.assertEquals(view.list_groups(),['Group one'])
+ view.get_group('Group one').add_feature(api.Feature("testing"))
+ self.assertEquals(view.get_group('Group one').list_features(),['feature2','testing'])
+ self.assertEquals(view.list_all_features(),['Group one.feature2', 'Group one.testing'])
+ view.remove_group("Group one")
+ self.assertEquals(view.list_groups(),[])
+ self.assertEquals(view.list_features(),[])
+
+ def test_view_add_featurelink(self):
+ view = api.View("view1")
+ view.add_group("Group one")
+ view.add_group("Group two")
+ view.add_feature(api.Feature("feature2"),"Group one")
+ self.assertEquals(view.list_groups(),['Group one', 'Group two'])
+ view.remove_group("Group two")
+ #view.add(api.FeatureGroup('foo.*'))
+ self.assertEquals(view.list_groups(),['Group one'])
+ view.get_group('Group one').add(api.FeatureLink("testing"))
+ g1 = view.get_group('Group one')
+ self.assertEquals(g1.list_features(),['feature2'])
+ self.assertEquals(view.list_all_features(),['Group one.feature2'])
+ view.remove_group("Group one")
+
+ self.assertEquals(view.list_groups(),[])
+ self.assertEquals(view.list_features(),[])
+
+ def compareview(self,view1,view2):
+ self.assertEquals(view1.ref, view2.ref)
+ self.assertEquals(view1.container, view2.container)
+ self.assertEquals(view1.name, view2.name)
+ self.assertEquals(view1.support_data, view2.support_data)
+
+
+ def test_clone_view_with_featurelink(self):
+ view1 = api.View("view1")
+ view1.add_group("Group one")
+ view1.add_group("Group two")
+ view1.get_group('Group one').add(api.FeatureLink("testing"))
+ fea2 = api.Feature("feature2")
+ view1.add_feature(fea2,"Group one")
+ view1.add_feature(api.Feature("feature3"),"Group one")
+ self.assertEquals(view1.list_groups(),['Group one', 'Group two'])
+
+ view2 = view1._clone(recursion=True)
+ self.compareview(view1,view2)
+ self.assertEquals(view2.list_groups(),['Group one', 'Group two'])
+ self.assertEquals(view2.get_group('Group one')._list(),['testing', 'feature2', 'feature3'])
+ #self.assertEquals(view2.get_group('Group one').feature2._obj, fea2)
+
+
+if __name__ == '__main__':
+ unittest.main()
+