def test_form(self):
        form = [etree.fromstring("""
            <form action="/caterpillar/test_bench/http_methods/post" method="post">
              <p>
                <span>Input text:</span>
                <input id="msg" name="msg" size="42" type="text" value="Python was conceived in the late 1980s and its implementation was started in December 1989 by Guido van Rossum" />
              </p>
            </form>
            """)]
        session = MarionetSession.objects.create(
            location = 'http://example.com:8000/some-page',
            query = '',
            baseURL = self.junit_base,
            )

        _form = PageTransformer.form(None,
            form,
            [session]
            )[0] # take 1st _Element
        action = urlparse(_form.get('action'))
        self.assertEqual(action.netloc, 'example.com:8000')
        query = parse_qs(action.query)

        # parse_qs decodes url parameters!
        self.assertEqual(
            query[session.get('namespace')+'.href'][0],
            'http://localhost:3000/caterpillar/test_bench/http_methods/post'
            )
        self.assertEqual(
            query[session.get('namespace')+'.lifecycle'][0],
            'processAction'
            )