From 741060f8578b184edc3474b2294b50df14e7997c Mon Sep 17 00:00:00 2001
From: Sam Clegg
+
''') create_file('test.html', html) @@ -963,47 +952,24 @@ def test_keydown_preventdefault_proxy(self): def post(): html = read_file('test.html') html = html.replace('', ''' + ''') create_file('test.html', html) + shutil.copyfile(test_file('browser/fake_events.js'), 'fake_events.js') self.btest_exit('browser/test_keydown_preventdefault_proxy.c', 300, args=['--proxy-to-worker'], post_build=post) def test_sdl_text(self): @@ -1015,72 +981,14 @@ def test_sdl_text(self): } setTimeout(doOne, 1000/60); } - - function simulateKeyEvent(c) { - var event = new KeyboardEvent('keypress', { keyCode: c, charCode: c, view: window, bubbles: true, cancelable: true }); - document.body.dispatchEvent(event); - } ''') - self.btest_exit('test_sdl_text.c', args=['--pre-js', 'pre.js', '-lSDL', '-lGL']) + self.btest_exit('test_sdl_text.c', args=['--pre-js', 'pre.js', '--pre-js', test_file('browser/fake_events.js'), '-lSDL', '-lGL']) def test_sdl_mouse(self): - create_file('pre.js', ''' - globalThis.simulateMouseEvent = (x, y, button) => { - var event = document.createEvent("MouseEvents"); - if (button >= 0) { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousedown', true, true, window, - 1, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event1); - var event2 = document.createEvent("MouseEvents"); - event2.initMouseEvent('mouseup', true, true, window, - 1, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event2); - } else { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousemove', true, true, window, - 0, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, - 0, 0, 0, 0, - 0, null); - Module['canvas'].dispatchEvent(event1); - } - } - ''') - - self.btest_exit('test_sdl_mouse.c', args=['-O2', '--minify=0', '--pre-js', 'pre.js', '-lSDL', '-lGL']) + self.btest_exit('test_sdl_mouse.c', args=['-O2', '--minify=0', '--pre-js', test_file('browser/fake_events.js'), '-lSDL', '-lGL']) def test_sdl_mouse_offsets(self): - create_file('pre.js', ''' - globalThis.simulateMouseEvent = (x, y, button) => { - var event = document.createEvent("MouseEvents"); - if (button >= 0) { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousedown', true, true, window, - 1, x, y, x, y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event1); - var event2 = document.createEvent("MouseEvents"); - event2.initMouseEvent('mouseup', true, true, window, - 1, x, y, x, y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event2); - } else { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousemove', true, true, window, - 0, x, y, x, y, - 0, 0, 0, 0, - 0, null); - Module['canvas'].dispatchEvent(event1); - } - } - ''') create_file('page.html', '''
@@ -1127,7 +1035,7 @@ def test_sdl_mouse_offsets(self): ''') - self.compile_btest('browser/test_sdl_mouse.c', ['-DTEST_SDL_MOUSE_OFFSETS', '-O2', '--minify=0', '-o', 'sdl_mouse.js', '--pre-js', 'pre.js', '-lSDL', '-lGL', '-sEXIT_RUNTIME']) + self.compile_btest('browser/test_sdl_mouse.c', ['-DTEST_SDL_MOUSE_OFFSETS', '-O2', '--minify=0', '-o', 'sdl_mouse.js', '--pre-js', test_file('browser/fake_events.js'), '-lSDL', '-lGL', '-sEXIT_RUNTIME']) self.run_browser('page.html', '', '/report_result?exit:0') def test_glut_touchevents(self): @@ -1506,13 +1414,7 @@ def test_force_exit(self): def test_sdl_pumpevents(self): # key events should be detected using SDL_PumpEvents - create_file('pre.js', ''' - function keydown(c) { - var event = new KeyboardEvent('keydown', { keyCode: c, charCode: c, view: window, bubbles: true, cancelable: true }); - document.dispatchEvent(event); - } - ''') - self.btest_exit('test_sdl_pumpevents.c', args=['--pre-js', 'pre.js', '-lSDL', '-lGL']) + self.btest_exit('test_sdl_pumpevents.c', args=['--pre-js', test_file('browser/fake_events.js'), '-lSDL', '-lGL']) def test_sdl_canvas_size(self): self.btest_exit('test_sdl_canvas_size.c', @@ -1772,6 +1674,7 @@ def test_glgears_long(self, args): 'full_944': ('hello_world_gles_full_944.c',), }) def test_glgears_animation(self, filename): + shutil.copyfile(test_file('browser/fake_events.js'), 'fake_events.js') args = ['-o', 'something.html', '-DHAVE_BUILTIN_SINCOS', '-sGL_TESTING', '-lGL', '-lglut', '--shell-file', test_file('hello_world_gles_shell.html')] @@ -2590,9 +2493,8 @@ def test_doublestart_bug(self): 'legacy': (['-sMIN_FIREFOX_VERSION=0', '-sMIN_SAFARI_VERSION=0', '-sMIN_CHROME_VERSION=0', '-Wno-transpile'],) }) def test_html5_core(self, opts): - if self.is_wasm64(): - if '-sMIN_CHROME_VERSION=0' in opts: - self.skipTest('wasm64 does not support older browsers') + if self.is_wasm64() and '-sMIN_CHROME_VERSION=0' in opts: + self.skipTest('wasm64 does not support older browsers') if '-sHTML5_SUPPORT_DEFERRING_USER_SENSITIVE_REQUESTS=0' in opts: # In this mode an exception can be thrown by the browser, and we don't # want the test to fail in that case so we override the error handling. @@ -2937,25 +2839,7 @@ def test_sdl2_image_formats(self): ]) def test_sdl2_key(self): - create_file('pre.js', ''' - function keydown(keyCode, code) { - var event = new KeyboardEvent('keydown', { keyCode, code, charCode: keyCode, view: window, bubbles: true, cancelable: true }); - var prevented = !document.dispatchEvent(event); - - //send keypress if not prevented - if (!prevented) { - var event = new KeyboardEvent('keypress', { keyCode, code, charCode: keyCode, view: window, bubbles: true, cancelable: true }); - document.dispatchEvent(event); - } - } - - function keyup(keyCode, code) { - var event = new KeyboardEvent('keyup', { keyCode, code, charCode: keyCode, view: window, bubbles: true, cancelable: true }); - document.dispatchEvent(event); - } - ''') - - self.btest_exit('test_sdl2_key.c', 37182145, args=['-sUSE_SDL=2', '--pre-js', 'pre.js']) + self.btest_exit('test_sdl2_key.c', 37182145, args=['-sUSE_SDL=2', '--pre-js', test_file('browser/fake_events.js')]) def test_sdl2_text(self): create_file('pre.js', ''' @@ -2966,74 +2850,16 @@ def test_sdl2_text(self): } setTimeout(doOne, 1000/60); } - - function simulateKeyEvent(c) { - var event = new KeyboardEvent('keypress', { keyCode: c, charCode: c, view: window, bubbles: true, cancelable: true }); - document.body.dispatchEvent(event); - } ''') - self.btest_exit('test_sdl2_text.c', args=['--pre-js', 'pre.js', '-sUSE_SDL=2']) + self.btest_exit('test_sdl2_text.c', args=['--pre-js', 'pre.js', '--pre-js', test_file('browser/fake_events.js'), '-sUSE_SDL=2']) @requires_graphics_hardware def test_sdl2_mouse(self): - create_file('pre.js', ''' - globalThis.simulateMouseEvent = (x, y, button) => { - var event = document.createEvent("MouseEvents"); - if (button >= 0) { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousedown', true, true, window, - 1, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event1); - var event2 = document.createEvent("MouseEvents"); - event2.initMouseEvent('mouseup', true, true, window, - 1, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event2); - } else { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousemove', true, true, window, - 0, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, Module['canvas'].offsetLeft + x, Module['canvas'].offsetTop + y, - 0, 0, 0, 0, - 0, null); - Module['canvas'].dispatchEvent(event1); - } - } - ''') - - self.btest_exit('test_sdl2_mouse.c', args=['-O2', '--minify=0', '--pre-js', 'pre.js', '-sUSE_SDL=2']) + self.btest_exit('test_sdl2_mouse.c', args=['-O2', '--minify=0', '--pre-js', test_file('browser/fake_events.js'), '-sUSE_SDL=2']) @requires_graphics_hardware def test_sdl2_mouse_offsets(self): - create_file('pre.js', ''' - globalThis.simulateMouseEvent = (x, y, button) => { - var event = document.createEvent("MouseEvents"); - if (button >= 0) { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousedown', true, true, window, - 1, x, y, x, y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event1); - var event2 = document.createEvent("MouseEvents"); - event2.initMouseEvent('mouseup', true, true, window, - 1, x, y, x, y, - 0, 0, 0, 0, - button, null); - Module['canvas'].dispatchEvent(event2); - } else { - var event1 = document.createEvent("MouseEvents"); - event1.initMouseEvent('mousemove', true, true, window, - 0, x, y, x, y, - 0, 0, 0, 0, - 0, null); - Module['canvas'].dispatchEvent(event1); - } - } - ''') create_file('page.html', '''
@@ -3080,7 +2906,7 @@ def test_sdl2_mouse_offsets(self): ''') - self.compile_btest('browser/test_sdl2_mouse.c', ['-DTEST_SDL_MOUSE_OFFSETS=1', '-O2', '--minify=0', '-o', 'sdl2_mouse.js', '--pre-js', 'pre.js', '-sUSE_SDL=2', '-sEXIT_RUNTIME']) + self.compile_btest('browser/test_sdl2_mouse.c', ['-DTEST_SDL_MOUSE_OFFSETS=1', '-O2', '--minify=0', '-o', 'sdl2_mouse.js', '--pre-js', test_file('browser/fake_events.js'), '-sUSE_SDL=2', '-sEXIT_RUNTIME']) self.run_browser('page.html', '', '/report_result?exit:0') def test_sdl2_threads(self): @@ -3150,13 +2976,7 @@ def test_sdl2_canvas_proxy(self): def test_sdl2_pumpevents(self): # key events should be detected using SDL_PumpEvents - create_file('pre.js', ''' - function keydown(keyCode, code) { - var event = new KeyboardEvent('keydown', { keyCode, code, charCode: keyCode, view: window, bubbles: true, cancelable: true }); - document.dispatchEvent(event); - } - ''') - self.btest_exit('test_sdl2_pumpevents.c', args=['--pre-js', 'pre.js', '-sUSE_SDL=2']) + self.btest_exit('test_sdl2_pumpevents.c', args=['--pre-js', test_file('browser/fake_events.js'), '-sUSE_SDL=2']) def test_sdl2_timer(self): self.btest_exit('test_sdl2_timer.c', args=['-sUSE_SDL=2'])