#!/bin/python
# -*- coding: utf-8 -*-
"""
Unit tests for gluon.html
"""
import unittest
from fix_path import fix_sys_path
fix_sys_path(__file__)
from html import *
from storage import Storage
class TestBareHelpers(unittest.TestCase):
def testBR(self):
self.assertEqual(BR(_a='1', _b='2').xml(), '
')
def testEMBED(self):
self.assertEqual(EMBED(_a='1', _b='2').xml(),
'')
def testHR(self):
self.assertEqual(HR(_a='1', _b='2').xml(), '
')
def testIMG(self):
self.assertEqual(IMG(_a='1', _b='2').xml(),
'
')
def testINPUT(self):
self.assertEqual(INPUT(_a='1', _b='2').xml(),
'')
def testLINK(self):
self.assertEqual(LINK(_a='1', _b='2').xml(),
'')
def testMETA(self):
self.assertEqual(META(_a='1', _b='2').xml(),
'')
def testA(self):
self.assertEqual(
A('<>', _a='1', _b='2').xml(),
'<>'
)
self.assertEqual(
A('a', cid='b').xml(),
'a'
)
self.assertEqual(
A('a', callback='b', _id='c').xml(),
'a'
)
self.assertEqual(
A('a', delete='tr').xml(),
'a'
)
self.assertEqual(
A('a', _id='b', target='').xml(),
'a'
)
self.assertEqual(
A('a', component='b').xml(),
'a'
)
self.assertEqual(
A('a', _id='b', callback='c', noconfirm=True).xml(),
'a'
)
self.assertEqual(
A('a', cid='b').xml(),
'a'
)
self.assertEqual(
A('a', cid='b', _disable_with='processing...').xml(),
'a'
)
self.assertEqual(
A('a', callback='b', delete='tr', noconfirm=True, _id='c').xml(),
'a'
)
self.assertEqual(
A('a', callback='b', delete='tr', confirm='Are you sure?', _id='c').xml(),
'a'
)
def testB(self):
self.assertEqual(B('<>', _a='1', _b='2').xml(),
'<>')
def testBODY(self):
self.assertEqual(BODY('<>', _a='1', _b='2').xml(),
'<>')
def testCENTER(self):
self.assertEqual(CENTER('<>', _a='1', _b='2').xml(),
'<>')
def testDIV(self):
self.assertEqual(DIV('<>', _a='1', _b='2').xml(),
'<>
')
def testEM(self):
self.assertEqual(EM('<>', _a='1', _b='2').xml(),
'<>')
def testFIELDSET(self):
self.assertEqual(FIELDSET('<>', _a='1', _b='2').xml(),
'')
def testFORM(self):
self.assertEqual(FORM('<>', _a='1', _b='2').xml(),
'')
def testH1(self):
self.assertEqual(H1('<>', _a='1', _b='2').xml(),
'<>
')
def testH2(self):
self.assertEqual(H2('<>', _a='1', _b='2').xml(),
'<>
')
def testH3(self):
self.assertEqual(H3('<>', _a='1', _b='2').xml(),
'<>
')
def testH4(self):
self.assertEqual(H4('<>', _a='1', _b='2').xml(),
'<>
')
def testH5(self):
self.assertEqual(H5('<>', _a='1', _b='2').xml(),
'<>
')
def testH6(self):
self.assertEqual(H6('<>', _a='1', _b='2').xml(),
'<>
')
def testHEAD(self):
self.assertEqual(HEAD('<>', _a='1', _b='2').xml(),
'<>')
def testHTML(self):
self.assertEqual(HTML('<>', _a='1', _b='2').xml(),
'\n<>')
def testIFRAME(self):
self.assertEqual(IFRAME('<>', _a='1', _b='2').xml(),
'')
def testLABEL(self):
self.assertEqual(LABEL('<>', _a='1', _b='2').xml(),
'')
def testLI(self):
self.assertEqual(LI('<>', _a='1', _b='2').xml(),
'<>')
def testOBJECT(self):
self.assertEqual(OBJECT('<>', _a='1', _b='2').xml(),
'')
def testOL(self):
self.assertEqual(OL('<>', _a='1', _b='2').xml(),
'- <>
')
def testOPTION(self):
self.assertEqual(OPTION('<>', _a='1', _b='2').xml(),
'')
def testP(self):
self.assertEqual(P('<>', _a='1', _b='2').xml(),
'<>
')
def testPRE(self):
self.assertEqual(PRE('<>', _a='1', _b='2').xml(),
'<>
')
def testSCRIPT(self):
self.assertEqual(SCRIPT('<>', _a='1', _b='2').xml(),
'''''')
def testSELECT(self):
self.assertEqual(SELECT('<>', _a='1', _b='2').xml(),
'')
def testSPAN(self):
self.assertEqual(SPAN('<>', _a='1', _b='2').xml(),
'<>')
def testSTYLE(self):
self.assertEqual(STYLE('<>', _a='1', _b='2').xml(),
'')
def testTABLE(self):
self.assertEqual(TABLE('<>', _a='1', _b='2').xml(),
'')
def testTBODY(self):
self.assertEqual(TBODY('<>', _a='1', _b='2').xml(),
'| <> |
')
def testTD(self):
self.assertEqual(TD('<>', _a='1', _b='2').xml(),
'<> | ')
def testTEXTAREA(self):
self.assertEqual(TEXTAREA('<>', _a='1', _b='2').xml(),
'')
def testTFOOT(self):
self.assertEqual(TFOOT('<>', _a='1', _b='2').xml(),
'| <> |
')
def testTH(self):
self.assertEqual(TH('<>', _a='1', _b='2').xml(),
'<> | ')
def testTHEAD(self):
self.assertEqual(THEAD('<>', _a='1', _b='2').xml(),
'| <> |
')
#self.assertEqual(THEAD(TRHEAD('<>'), _a='1', _b='2').xml(),
# '| <> |
')
self.assertEqual(THEAD(TR('<>'), _a='1', _b='2').xml(),
'| <> |
')
def testTITLE(self):
self.assertEqual(TITLE('<>', _a='1', _b='2').xml(),
'<>')
def testTR(self):
self.assertEqual(TR('<>', _a='1', _b='2').xml(),
'| <> |
')
def testTT(self):
self.assertEqual(TT('<>', _a='1', _b='2').xml(),
'<>')
def testUL(self):
self.assertEqual(UL('<>', _a='1', _b='2').xml(),
'')
def testStaticURL(self):
# test response.static_version coupled with response.static_version_urls
self.assertEqual(URL('a', 'c', 'f'), '/a/c/f')
self.assertEqual(URL('a', 'static', 'design.css'), '/a/static/design.css')
response = Storage()
response.static_version = '1.2.3'
from globals import current
current.response = response
self.assertEqual(URL('a', 'static', 'design.css'), '/a/static/design.css')
response.static_version_urls = True
self.assertEqual(URL('a', 'static', 'design.css'), '/a/static/_1.2.3/design.css')
def testURL(self):
self.assertEqual(URL('a', 'c', 'f', args='1'), '/a/c/f/1')
self.assertEqual(URL('a', 'c', 'f', args=('1', '2')), '/a/c/f/1/2')
self.assertEqual(URL('a', 'c', 'f', args=['1', '2']), '/a/c/f/1/2')
self.assertEqual(URL('a', 'c', '/f'), '/a/c/f')
self.assertEqual(URL('a', 'c', 'f.json'), '/a/c/f.json')
self.assertRaises(SyntaxError, URL, *['a'])
request = Storage()
request.application = 'a'
request.controller = 'c'
request.function = 'f'
request.env = {}
from globals import current
current.request = request
must_return = '/a/c/f'
self.assertEqual(URL('f'), must_return)
self.assertEqual(URL('c', 'f'), must_return)
self.assertEqual(URL('a', 'c', 'f'), must_return)
self.assertEqual(URL('a', 'c', 'f', extension='json'), '/a/c/f.json')
def weird():
pass
self.assertEqual(URL('a', 'c', weird), '/a/c/weird')
self.assertRaises(SyntaxError, URL, *['a','c', 1])
class TestData(unittest.TestCase):
def testAdata(self):
self.assertEqual(A('<>', data=dict(abc='', cde='standard'), _a='1', _b='2').xml(),'<>')
if __name__ == '__main__':
unittest.main()