import py |
|
def check(mod): |
try: |
import pypy |
from pypy.translator.js.modules import dom |
from pypy.translator.js.tester import schedule_callbacks |
dom.Window |
|
except (ImportError, AttributeError): |
py.test.skip('PyPy not found') |
mod.dom = dom |
mod.schedule_callbacks = schedule_callbacks |
|
from py.__.test.rsession import webjs |
from py.__.test.rsession.web import exported_methods |
mod.webjs = webjs |
mod.exported_methods = exported_methods |
mod.here = py.magic.autopath().dirpath() |
|
def setup_module(mod): |
check(mod) |
|
|
html = here.join('../webdata/index.html').read() |
mod.html = html |
from pypy.translator.js.modules import dom |
mod.dom = dom |
dom.window = dom.Window(html) |
dom.document = dom.window.document |
from py.__.test.rsession import webjs |
from py.__.test.rsession.web import exported_methods |
mod.webjs = webjs |
mod.exported_methods = exported_methods |
|
def setup_function(f): |
dom.window = dom.Window(html) |
dom.document = dom.window.document |
|
def test_html_loaded(): |
body = dom.window.document.getElementsByTagName('body')[0] |
assert len(body.childNodes) > 0 |
assert str(body.childNodes[1].nodeName) == 'A' |
|
def test_set_msgbox(): |
py.test.skip("not implemented in genjs") |
msgbox = dom.window.document.getElementById('messagebox') |
assert len(msgbox.childNodes) == 0 |
webjs.set_msgbox('foo', 'bar') |
assert len(msgbox.childNodes) == 1 |
assert msgbox.childNodes[0].nodeName == 'PRE' |
assert msgbox.childNodes[0].childNodes[0].nodeValue == 'foo\nbar' |
|
def test_show_info(): |
info = dom.window.document.getElementById('info') |
info.style.visibility = 'hidden' |
info.innerHTML = '' |
webjs.show_info('foobar') |
content = info.innerHTML |
assert content == 'foobar' |
bgcolor = info.style.backgroundColor |
assert bgcolor == 'beige' |
|
def test_hide_info(): |
info = dom.window.document.getElementById('info') |
info.style.visibility = 'visible' |
webjs.hide_info() |
assert info.style.visibility == 'hidden' |
|
def test_process(): |
main_t = dom.window.document.getElementById('main_table') |
assert len(main_t.getElementsByTagName('tr')) == 0 |
assert not webjs.process({}) |
|
msg = {'type': 'ItemStart', |
'itemtype': 'Module', |
'itemname': 'foo.py', |
'fullitemname': 'modules/foo.py', |
'length': 10, |
} |
assert webjs.process(msg) |
trs = main_t.getElementsByTagName('tr') |
assert len(trs) == 1 |
tr = trs[0] |
assert len(tr.childNodes) == 2 |
assert tr.childNodes[0].nodeName == 'TD' |
assert tr.childNodes[0].innerHTML == 'foo.py[0/10]' |
assert tr.childNodes[1].nodeName == 'TD' |
assert tr.childNodes[1].childNodes[0].nodeName == 'TABLE' |
assert len(tr.childNodes[1].getElementsByTagName('tr')) == 0 |
|
def test_process_two(): |
main_t = dom.window.document.getElementById('main_table') |
msg = {'type': 'ItemStart', |
'itemtype': 'Module', |
'itemname': 'foo.py', |
'fullitemname': 'modules/foo.py', |
'length': 10, |
} |
webjs.process(msg) |
msg = {'type': 'ReceivedItemOutcome', |
'fullmodulename': 'modules/foo.py', |
'passed' : 'True', |
'fullitemname' : 'modules/foo.py/test_item', |
'hostkey': None, |
} |
webjs.process(msg) |
trs = main_t.getElementsByTagName('tr') |
tds = trs[0].getElementsByTagName('td') |
|
assert len(tds) == 3 |
html = tds[0].innerHTML |
assert html == 'foo.py[1/10]' |
assert tds[2].innerHTML == '.' |
|
def test_signal(): |
main_t = dom.window.document.getElementById('main_table') |
msg = {'type': 'ItemStart', |
'itemtype': 'Module', |
'itemname': 'foo.py', |
'fullitemname': 'modules/foo.py', |
'length': 10, |
} |
webjs.process(msg) |
msg = {'type': 'ReceivedItemOutcome', |
'fullmodulename': 'modules/foo.py', |
'passed' : 'False', |
'fullitemname' : 'modules/foo.py/test_item', |
'hostkey': None, |
'signal': '10', |
'skipped': 'False', |
} |
exported_methods.fail_reasons['modules/foo.py/test_item'] = 'Received signal 10' |
exported_methods.stdout['modules/foo.py/test_item'] = '' |
exported_methods.stderr['modules/foo.py/test_item'] = '' |
webjs.process(msg) |
schedule_callbacks(exported_methods) |
|
assert dom.document.getElementById('modules/foo.py').childNodes[0].\ |
childNodes[0].childNodes[0].childNodes[0].nodeValue == 'F' |
|
|
|
|