def test__relativePath(self):
        # build test navtree
        context = MockObject(uid='00000000000000001',
                             path="/%s/bar/fizz" % MOCK_SITE_ID)
        context.__parent__ = MockObject(uid='00000000000000002',
                                        path="/%s/bar" % MOCK_SITE_ID)
        # Plone root
        context.__parent__.__parent__ = MockSite()
        # Zope root
        context.__parent__.__parent__.__parent__ = \
            MockObject(uid='00000000000000004', path="/")
        # ploneroot sub folder
        context.__parent__.__parent__.ham = \
            MockObject(uid='00000000000000005',
                       path="/%s/ham" % MOCK_SITE_ID)
        # collection subfolder
        context.__parent__.egg = MockObject(uid='00000000000000006',
                                            path="/%s/bar/egg" % MOCK_SITE_ID)

        # show my siblings
        data = Row(index='path',
                  operator='_relativePath',
                  values='..')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s/bar' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # walk upwards
        data = Row(index='path',
                  operator='_relativePath',
                  values='../../')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # if you walk beyond INavigatinRoot it should stop and return
        data = Row(index='path',
                  operator='_relativePath',
                  values='../../../')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # reach a subfolder on Plone root
        data = Row(index='path',
                   operator='_relativePath',
                   values='../../ham')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s/ham' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # reach a subfolder on parent of collection
        data = Row(index='path',
                   operator='_relativePath',
                   values='../egg')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s/bar/egg' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)
Exemple #2
0
    def test__relativePath(self):
        # build test navtree
        context = MockObject(uid='00000000000000001',
                             path="/%s/bar/fizz" % MOCK_SITE_ID)
        context.__parent__ = MockObject(uid='00000000000000002',
                                        path="/%s/bar" % MOCK_SITE_ID)
        # Plone root
        context.__parent__.__parent__ = MockSite()
        # Zope root
        context.__parent__.__parent__.__parent__ = \
            MockObject(uid='00000000000000004', path="/")
        # ploneroot sub folder
        context.__parent__.__parent__.ham = \
            MockObject(uid='00000000000000005',
                       path="/%s/ham" % MOCK_SITE_ID)
        # collection subfolder
        context.__parent__.egg = MockObject(uid='00000000000000006',
                                            path="/%s/bar/egg" % MOCK_SITE_ID)

        # show my siblings
        data = Row(index='path', operator='_relativePath', values='..')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s/bar' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # walk upwards
        data = Row(index='path', operator='_relativePath', values='../../')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # if you walk beyond INavigatinRoot it should stop and return
        data = Row(index='path', operator='_relativePath', values='../../../')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # reach a subfolder on Plone root
        data = Row(index='path', operator='_relativePath', values='../../ham')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s/ham' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)

        # reach a subfolder on parent of collection
        data = Row(index='path', operator='_relativePath', values='../egg')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/%s/bar/egg' % MOCK_SITE_ID}}
        self.assertEqual(parsed, expected)
    def test__relativePath(self):
        context = MockObject(uid='00000000000000001', path="/foo/bar/fizz")
        context.__parent__ = MockObject(uid='00000000000000002',
                                        path="/foo/bar")

        # Plone root
        root = MockObject(uid='00000000000000003', path="/foo")
        directlyProvides(root, INavigationRoot)
        context.__parent__.__parent__ = root

        # Zope root
        zoperoot = MockObject(uid='00000000000000004', path="/")
        context.__parent__.__parent__.__parent__ = zoperoot

        data = Row(index='path',
                  operator='_relativePath',
                  values='../../')
        parsed = queryparser._relativePath(context, data)
        expected = {'path': {'query': '/foo'}}
        self.assertEqual(parsed, expected)