Beispiel #1
0
    def test_Init(self):
        REQUEST = fakeRequest()
        REQUEST['BODY'] = BASIC_STRUCTUREDTEXT
        d = Document('foo')
        d.PUT(REQUEST, RESPONSE=fakeResponse())
        self.assertEqual(d.Format(), 'text/plain')
        self.assertEqual(d.Title(), 'My Document')
        self.assertEqual(d.Description(), 'A document by me')
        self.assertEqual(len(d.Contributors()), 3)
        self.failUnless(string.find(d.cooked_text, '<p>') >= 0)

        d = Document('foo', text='')
        REQUEST['BODY'] = BASIC_HTML
        d.PUT(REQUEST, RESPONSE=fakeResponse())
        self.assertEqual(d.Format(), 'text/html')
        self.assertEqual(d.Title(), 'Title in tag')
        self.assertEqual(len(d.Contributors()), 3)

        d = Document('foo', text_format='structured-text', title='Foodoc')
        self.assertEqual(d.text, '')
        self.failIf(d.CookedBody())
        self.assertEqual(d.title, 'Foodoc')
        self.assertEqual(d.Format(), 'text/plain')

        # Tracker issue 435:  initial text is not cooked.
        d = Document('foo', text_format='structured-text', text=STX_NO_HEADERS)
        self.assertEqual(d.EditableBody(), STX_NO_HEADERS)
        self.failUnless(d.CookedBody())
        self.assertEqual(d.Format(), 'text/plain')
Beispiel #2
0
 def test_HtmlWithoutNewlines(self):
     REQUEST = fakeRequest()
     d = Document('foo')
     REQUEST['BODY'] = string.join(string.split(BASIC_HTML, '\n'), '')
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     assert d.Format() == 'text/html'
     assert d.Description() == 'Describe me'
Beispiel #3
0
 def test_PutHtml(self):
     d = Document('foo')
     self._request.body = BASIC_HTML
     r = d.PUT(self._request, self._response)
     self.assertEqual(d.Format(), 'text/html')
     self.assertEqual(d.Description(), 'Describe me')
     self.assertEqual(r.status, 204)
Beispiel #4
0
 def test_PutHtmlWithDoctype(self):
     d = Document('foo')
     html = '%s\n\n  \n   %s' % (DOCTYPE, BASIC_HTML)
     self._request.body = html
     r = d.PUT(self._request, self._response)
     self.assertEqual(d.Format(), 'text/html')
     self.assertEqual(d.Description(), 'Describe me')
     self.assertEqual(r.status, 204)
Beispiel #5
0
    def test_PutStructuredText(self):
        d = Document('foo')

        self._request.body = BASIC_STRUCTUREDTEXT

        r = d.PUT(self._request, self._response)
        self.assertEqual(d.Format(), 'text/plain')
        self.assertEqual(r.status, 204)
Beispiel #6
0
    def test_PutStructuredTextWithHTML(self):
        d = Document('foo')

        self._request.body = STX_WITH_HTML

        r = d.PUT(self._request, self._response)
        self.assertEqual(d.Format(), 'text/plain')
        self.assertEqual(r.status, 204)
Beispiel #7
0
 def test_UpperedHtml(self):
     REQUEST = fakeRequest()
     REQUEST['BODY'] = string.upper(BASIC_HTML)
     d = Document('foo')
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     assert d.Format() == 'text/html'
     assert d.title == 'TITLE IN TAG'
     assert string.find(d.text, '</BODY') == -1
     assert d.Description() == 'DESCRIBE ME'
     assert len(d.Contributors()) == 3
Beispiel #8
0
 def test_UpperedHtml(self):
     REQUEST = fakeRequest()
     REQUEST['BODY'] = string.upper(BASIC_HTML)
     d = Document('foo')
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     self.assertEqual(d.Format(), 'text/html')
     self.assertEqual(d.title, 'TITLE IN TAG')
     self.assertEqual(string.find(d.text, '</BODY'), -1)
     self.assertEqual(d.Description(), 'DESCRIBE ME')
     self.assertEqual(len(d.Contributors()), 3)
Beispiel #9
0
 def test_BigHtml(self):
     REQUEST = fakeRequest()
     d = Document('foo')
     s = []
     looper = '<li> number %s</li>'
     for i in range(12000):
         s.append(looper % i)
     body = '<ul>\n%s\n</ul>' % string.join(s, '\n')
     REQUEST['BODY'] = HTML_TEMPLATE % {
         'title': 'big document',
         'body': body
     }
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     assert d.CookedBody() == body
Beispiel #10
0
    def test_STX_NoHeaders(self):
        REQUEST = fakeRequest()
        REQUEST['BODY'] = STX_NO_HEADERS
        d = Document('foo')
        d.editMetadata(title="Plain STX",
                       description="Look, Ma, no headers!",
                       subject=("plain", "STX"))
        self.assertEqual(d.Format(), 'text/html')
        self.assertEqual(d.Title(), 'Plain STX')
        self.assertEqual(d.Description(), 'Look, Ma, no headers!')
        self.assertEqual(len(d.Subject()), 2)
        self.failUnless('plain' in d.Subject())
        self.failUnless('STX' in d.Subject())

        d.PUT(REQUEST, RESPONSE=fakeResponse())

        self.assertEqual(d.Format(), 'text/plain')
        self.assertEqual(d.Title(), 'Plain STX')
        self.assertEqual(d.Description(), 'Look, Ma, no headers!')
        self.assertEqual(len(d.Subject()), 2)
        self.failUnless('plain' in d.Subject())
        self.failUnless('STX' in d.Subject())
Beispiel #11
0
    def test_BasicHtmlPUT(self):
        REQUEST = fakeRequest()
        REQUEST['BODY'] = BASIC_HTML
        d = Document('foo')
        d.PUT(REQUEST, RESPONSE=fakeResponse())
        assert d.Format() == 'text/html'
        assert d.title == 'Title in tag'
        assert string.find(d.text, '</body>') == -1
        assert d.Description() == 'Describe me'
        assert len(d.Contributors()) == 3
        assert d.Contributors()[-1] == 'Benotz, Larry J ([email protected])'

        # Since the format is html, the STX level operands should
        # have no effect.
        ct = d.CookedBody(stx_level=3, setlevel=1)
        assert d._stx_level == 1

        subj = list(d.Subject())
        assert len(subj) == 4
        subj.sort()
        assert subj == [
            'content management', 'framework', 'unit tests', 'zope'
        ]
Beispiel #12
0
    def test_StructuredText(self):
        REQUEST = fakeRequest()
        REQUEST['BODY'] = BASIC_STRUCTUREDTEXT
        d = Document('foo')
        d.PUT(REQUEST, RESPONSE=fakeResponse())
        self.failUnless(hasattr(d, 'cooked_text'))
        self.assertEqual(d.Format(), 'text/plain')
        self.assertEqual(d.Title(), 'My Document')
        self.assertEqual(d.Description(), 'A document by me')
        self.assertEqual(len(d.Contributors()), 3)
        self.failUnless(string.find(d.cooked_text, '<p>') >= 0)
        self.failUnless(string.find(d.CookedBody(), '<h1') >= 0)

        # Make sure extra HTML is NOT found
        self.failUnless(string.find(d.cooked_text, '<title>') < 0)
        self.failUnless(string.find(d.cooked_text, '<body>') < 0)

        # test subject/keyword headers
        subj = list(d.Subject())
        self.assertEqual(len(subj), 4)
        subj.sort()
        self.assertEqual(
            subj, ['content management', 'framework', 'unit tests', 'zope'])
Beispiel #13
0
    def test_BasicHtmlPUT(self):
        REQUEST = fakeRequest()
        REQUEST['BODY'] = BASIC_HTML
        d = Document('foo')
        d.PUT(REQUEST, RESPONSE=fakeResponse())
        self.assertEqual(d.Format(), 'text/html')
        self.assertEqual(d.title, 'Title in tag')
        self.assertEqual(string.find(d.text, '</body>'), -1)
        self.assertEqual(d.Description(), 'Describe me')
        self.assertEqual(len(d.Contributors()), 3)
        self.assertEqual(d.Contributors()[-1],
                         'Benotz, Larry J ([email protected])')

        # Since the format is html, the STX level operands should
        # have no effect.
        ct = d.CookedBody(stx_level=3, setlevel=1)
        self.assertEqual(d._stx_level, 1)

        subj = list(d.Subject())
        self.assertEqual(len(subj), 4)
        subj.sort()
        self.assertEqual(
            subj, ['content management', 'framework', 'unit tests', 'zope'])
Beispiel #14
0
 def test_HtmlWithDoctype(self):
     REQUEST = fakeRequest()
     d = Document('foo')
     REQUEST['BODY'] = '%s\n%s' % (DOCTYPE, BASIC_HTML)
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     assert d.Description() == 'Describe me'
Beispiel #15
0
 def test_EntityInTitle(self):
     REQUEST = fakeRequest()
     REQUEST['BODY'] = ENTITY_IN_TITLE
     d = Document('foo')
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     assert d.title == '&Auuml;rger', "Title '%s' being lost" % (d.title)
Beispiel #16
0
 def test_EntityInTitle(self):
     REQUEST = fakeRequest()
     REQUEST['BODY'] = ENTITY_IN_TITLE
     d = Document('foo')
     d.PUT(REQUEST, RESPONSE=fakeResponse())
     self.assertEqual(d.title, '&Auuml;rger')