File: testFormExtractor.py

package info (click to toggle)
galileo 0.5.1-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 420 kB
  • sloc: python: 3,462; xml: 23; makefile: 11; sh: 1
file content (31 lines) | stat: -rw-r--r-- 1,422 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import unittest

from galileo.ui import FormExtractor, FormField

class testFormExtractor(unittest.TestCase):

    def testEasy(self):
        fe = FormExtractor()
        fe.feed('<html><body><form><input type="text" name="username"><input type="text" name="password"></form></body></html>')
        self.assertEqual(len(fe.forms), 1)
        self.assertEqual(len(fe.forms[0].fields), 2)
        self.assertEqual(fe.forms[0].asDict(), {'username':None, 'password':None})

    def testOneHidden(self):
        fe = FormExtractor()
        fe.feed('<html><body><form><input name="username" type="hidden" value="User"><input type="text" name="password"></form></body></html>')
        self.assertEqual(len(fe.forms), 1)
        self.assertEqual(fe.forms[0].asDict(), {'username': 'User', 'password': None})

    def testSelect(self):
        fe = FormExtractor()
        fe.feed('<html><body><form><select name="choice" ><option value="A" /><option value="B" selected></select></form></body></html>')
        self.assertEqual(len(fe.forms), 1)
        self.assertEqual(fe.forms[0].asDict(), {'choice': 'B'})

    def testInputOutOfForm(self):
        """ From the 'done' action """
        fe = FormExtractor()
        fe.feed(u'''<!DOCTYPE html><input class="button" type="submit" name="again" value="Next" />''')
        self.assertEqual(len(fe.forms), 1)
        self.assertEqual(fe.forms[0].asDict(), {'again': 'Next'})