Index: /quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/tests.py
===================================================================
--- /quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/tests.py	(revision 2371)
+++ /quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/tests.py	(revision 2372)
@@ -88,5 +88,4 @@
 class TestDefaultCanonicalPathAdapter(TestCase):
 
-
     def afterSetUp(self):
         self.loginAsPortalOwner()
@@ -318,5 +317,5 @@
     """Property provider."""
 
-class NotProperyProviderItem(BaseItem, Traversable):
+class NotPropertyProviderItem(BaseItem, Traversable):
     """Not property provider."""
 
@@ -356,9 +355,9 @@
 
     def test_convertBadItems(self):
-        bad = NotProperyProviderItem("item")
+        bad = NotPropertyProviderItem("item")
         self.convertor.convertIPathToLink(bad)
         result = self.convertor.getLogs()
         expect = "ERROR: exceptions.AttributeError: " \
-                 "NotProperyProviderItem instance has no attribute 'hasProperty'"
+                 "NotPropertyProviderItem instance has no attribute 'hasProperty'"
         self.assertEqual(expect in result, True, "Wrong log: %s" % result)
 
@@ -379,5 +378,5 @@
         # log must collect new errors
         # and return full log anytime
-        bad = NotProperyProviderItem("item")
+        bad = NotPropertyProviderItem("item")
         self.convertor.convertIPathToLink(bad)
         logs = self.convertor.getLogs()
@@ -391,7 +390,6 @@
              "Log was not updated - last: \"%s\", previous: \"%s\"" % (logs3, logs2))
         
-
     def test_loggingCleanup(self):
-        bad = NotProperyProviderItem("item")
+        bad = NotPropertyProviderItem("item")
         self.convertor.convertIPathToLink(bad)
         assert self.convertor.getLogs() != ""
@@ -399,4 +397,52 @@
         logs = self.convertor.getLogs()
         self.assertEqual(logs, "", "Log not cleand-up: \"%s\"" % logs)
+
+
+class TestAdaptersRegistration(unittest.TestCase):
+    """Test of default adapters registration."""
+
+    def setUp(self):
+        self.cant = "Can't get \"%s\" adapter for object, which implement: "
+        self.doget = "Get \"%s\" adapter for object, which implement: "
+
+    def test_PropertyManagerAndTraversable(self):
+        class ProperyAndTraverseProvider(BaseItem, PropertyManager, Traversable):
+            """Property and Traversable provider."""
+        item = ProperyAndTraverseProvider("test")
+        self.assertNotEqual(queryAdapter(item, ICanonicalLink), None,
+           self.cant % ICanonicalLink.__name__ + "IPropertyManager and ITraversable.")
+        self.assertNotEqual(queryAdapter(item, ICanonicalPath), None,
+           self.cant % ICanonicalPath.__name__ + "IPropertyManager and ITraversable.")
+
+    def test_Traversable(self):
+        """Traversable enough for get adapter"""
+        class TraverseProvider(BaseItem, Traversable):
+            """Only Traversable provider."""
+        item = TraverseProvider("test")
+        self.assertNotEqual(queryAdapter(item, ICanonicalLink), None,
+           self.cant % ICanonicalLink.__name__ + "only ITraversable.")
+        self.assertNotEqual(queryAdapter(item, ICanonicalPath), None,
+           self.cant % ICanonicalPath.__name__ + "only ITraversable.")
+
+    def test_PropertyManager(self):
+        """Implementing only IPropertyManager - not enough, because of
+           the default value need ITraversable.
+        """
+        class PropertyManagerProvider(BaseItem, PropertyManager):
+            """Only PropertyManager provider."""
+        item = PropertyManagerProvider("test")
+        self.assertEqual(queryAdapter(item, ICanonicalLink), None,
+           self.doget % ICanonicalLink.__name__ + "only IPropertyManager.")
+        self.assertEqual(queryAdapter(item, ICanonicalPath), None,
+           self.doget % ICanonicalPath.__name__ + "only IPropertyManager.")
+
+    def test_NotProvider(self):
+        class NotProvider(BaseItem):
+            """Nor Traversable not PropertyManager provider."""
+        item = NotProvider("test")
+        self.assertEqual(queryAdapter(item, ICanonicalLink), None,
+           self.doget % ICanonicalLink.__name__ + "nor ITraversabe not IPropertyManager.")
+        self.assertEqual(queryAdapter(item, ICanonicalPath), None,
+           self.doget % ICanonicalPath.__name__ + "nor ITraversabe not IPropertyManager.")
 
 
@@ -407,4 +453,5 @@
         unittest.makeSuite(TestDefaultCanonicalLinkAdapter),
         unittest.makeSuite(TestConvertor),
+        unittest.makeSuite(TestAdaptersRegistration),
         ])
 
