4 from BaseHTTPServer
import *
21 def encode(ch
, encoding
):
23 return encode(C_CR
, encoding
) + encode(C_LF
, encoding
)
27 if encoding
== E_JavaScript
:
29 if encoding
== E_Entity
:
34 if encoding
== E_JavaScript
:
36 if encoding
== E_Entity
:
39 def get_form(ch
, encoding
, field
):
40 text
= "foo" + encode(ch
, encoding
) + "bar"
41 if encoding
== E_JavaScript
:
48 <title>Form Test</title>
51 <form id="form1" name="form1" action="http://127.0.0.1:8090/">
54 s
+= '<input type="hidden" id="field1" name="field1" value="' + text_initial
+ '">'
55 elif field
== F_TextArea
:
56 s
+= '<textarea id="field1" name="field1">' + text_initial
+ '</textarea>'
58 if encoding
== E_JavaScript
:
61 document.form1.field1.value = '%s';
67 class forwarder(BaseHTTPRequestHandler
):
69 w
.write(self
.path
+ "\n")
71 self
.send_response(200)
72 self
.send_header("Content-Type", "text/plain")
74 self
.wfile
.write("Dummy response")
76 def runtest(r
, *args
):
77 form
= get_form(*args
)
79 tmpfile
, tmpname
= tempfile
.mkstemp(".html")
80 tmpfile
= os
.fdopen(tmpfile
, 'w')
84 linkspid
= os
.spawnlp(os
.P_NOWAIT
, 'elinks', 'elinks',
85 '-config-dir', os
.getcwd(),
86 '-config-file', 'crlf.conf',
91 os
.kill(linkspid
, signal
.SIGINT
)
92 os
.waitpid(linkspid
, 0)
106 for c
in [C_CR
, C_LF
, C_CRLF
]:
107 for e
in [E_Raw
, E_Entity
, E_JavaScript
]:
108 for f
in [F_Hidden
, F_TextArea
]:
109 paths
.append(("%d %d %d " % (c
, e
, f
)) + runtest(r
, c
, e
, f
))
114 os
.kill(pid
, signal
.SIGTERM
)
118 w
= os
.fdopen(w
, 'w')
119 server_address
= ('127.0.0.1', 8090)
120 httpd
= HTTPServer(server_address
, forwarder
)
121 httpd
.serve_forever()