tools/test-harness/jssh-driver/jssh_driver.py

branch
TOR_BUG_9701
changeset 10
ac0c01689b40
equal deleted inserted replaced
-1:000000000000 0:56a86907bde4
1 #!/usr/bin/env python
2 # This Source Code Form is subject to the terms of the Mozilla Public
3 # License, v. 2.0. If a copy of the MPL was not distributed with this
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 import re
6 import sys
7 import telnetlib
8
9 class JsshDriver:
10
11 COMMAND_PROMPT = "\n> "
12
13 def __init__(self, host=None, port=9997, telnetklass=telnetlib.Telnet):
14 """Ctor
15 Ctor
16 """
17 self.host = host
18 self.port = port
19 self.tn = telnetklass(host,port)
20 self.init()
21
22 def open(self,host,port=9997):
23 self.tn.close()
24 self.host = host
25 self.port = port
26 self.tn.open(host,port)
27 self.init()
28
29 def init(self):
30 if not self.tn.get_socket():
31 return
32
33 self.tn.read_until(JsshDriver.COMMAND_PROMPT)
34 self.send_command("setProtocol('synchronous')")
35
36 def send_command(self,command):
37 self.tn.write(command + "\n")
38 return self.tn.read_until(JsshDriver.COMMAND_PROMPT)
39
40 def send_quit(self):
41 self.tn.write("quit()\n")
42 return self.tn.read_all()
43
44 class JsshTester:
45
46 def __init__(self, host, port=9997, telnetklass=telnetlib.Telnet):
47 self.browser = JsshDriver(host,port,telnetklass)
48
49 def __del__(self):
50 self.browser.send_quit()
51
52 def get_innerHTML_from_URL(self,url):
53 self.browser.send_command ('var browser = getWindows()[0].getBrowser()')
54
55 if url:
56 self.browser.send_command ('browser.loadURI("' + url + '")')
57
58 self.browser.send_command ('var document = browser.contentDocument')
59 self.browser.send_command ('var window = browser.contentWindow')
60 jssh_response = self.browser.send_command ('print(document.documentElement.innerHTML)')
61
62 m = re.compile(r"\[(?P<len>\d+)](?P<rest>.*)", re.DOTALL).search(jssh_response)
63
64 return m.group('rest')[0:int(m.group('len'))]

mercurial