From fb3eab1aa857994c5f2910ac3532e0ade4e7ac44 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Mon, 23 Feb 2026 18:20:15 +0800 Subject: [PATCH] Improve tests when running outside of our test runner We often verify the correctness of tests by loading them in an external browser, but some tests just don't run the same/correctly. For example, we used to hard- code the http://127.0.0.1:9582/ origin, but that would cause tests to fail if running from a different origin. This commit _begins_ the work of improving this. It introduces a testing.ORIGIN, testing.BASE_URL and testing.HOST which will work correctly in both our runner and an external browser. It also introduces `testing.IS_TEST_RUNNER` boolean flag so that tests which have no chance of working in an external browser (e.g. screen.width) can be skipped. The goal is to reduce/remove tests which fail in external browsers so that such failures aren't quickly written off as "just how it is". --- src/browser/tests/document/document.html | 6 ++--- src/browser/tests/element/html/anchor.html | 8 +++---- src/browser/tests/element/html/image.html | 4 ++-- src/browser/tests/element/html/input.html | 4 ++-- src/browser/tests/element/html/link.html | 2 +- src/browser/tests/element/html/media.html | 4 ++-- .../tests/element/html/script/script.html | 4 ++-- src/browser/tests/element/inner.html | 1 - src/browser/tests/net/request.html | 2 +- src/browser/tests/node/base_uri.html | 2 +- src/browser/tests/testing.js | 24 +++++++++++++++---- src/browser/tests/window/location.html | 10 ++++---- src/browser/tests/window/screen.html | 6 +++-- 13 files changed, 46 insertions(+), 31 deletions(-) diff --git a/src/browser/tests/document/document.html b/src/browser/tests/document/document.html index 322e6c74..74d8ff30 100644 --- a/src/browser/tests/document/document.html +++ b/src/browser/tests/document/document.html @@ -12,7 +12,7 @@ testing.expectEqual(10, document.childNodes[0].nodeType); testing.expectEqual(null, document.parentNode); testing.expectEqual(undefined, document.getCurrentScript); - testing.expectEqual("http://127.0.0.1:9582/src/browser/tests/document/document.html", document.URL); + testing.expectEqual(testing.BASE_URL + 'document/document.html', document.URL); testing.expectEqual(window, document.defaultView); testing.expectEqual(false, document.hidden); testing.expectEqual("visible", document.visibilityState); @@ -57,7 +57,7 @@ testing.expectEqual('CSS1Compat', document.compatMode); testing.expectEqual(document.URL, document.documentURI); testing.expectEqual('', document.referrer); - testing.expectEqual('127.0.0.1', document.domain); + testing.expectEqual(testing.HOST, document.domain); diff --git a/src/browser/tests/element/html/anchor.html b/src/browser/tests/element/html/anchor.html index 2eaa7935..3c248a7b 100644 --- a/src/browser/tests/element/html/anchor.html +++ b/src/browser/tests/element/html/anchor.html @@ -11,11 +11,11 @@ diff --git a/src/browser/tests/element/html/link.html b/src/browser/tests/element/html/link.html index 28dc1d52..2031e5fe 100644 --- a/src/browser/tests/element/html/link.html +++ b/src/browser/tests/element/html/link.html @@ -8,7 +8,7 @@ testing.expectEqual('https://lightpanda.io/opensource-browser/15', l2.href); l2.href = '/over/9000'; - testing.expectEqual('http://127.0.0.1:9582/over/9000', l2.href); + testing.expectEqual(testing.ORIGIN + 'over/9000', l2.href); l2.crossOrigin = 'nope'; testing.expectEqual('anonymous', l2.crossOrigin); diff --git a/src/browser/tests/element/html/media.html b/src/browser/tests/element/html/media.html index 4eba2e76..15cd9b33 100644 --- a/src/browser/tests/element/html/media.html +++ b/src/browser/tests/element/html/media.html @@ -238,7 +238,7 @@ testing.expectEqual('', audio.src); audio.src = 'test.mp3'; - testing.expectEqual('http://127.0.0.1:9582/src/browser/tests/element/html/test.mp3', audio.src); + testing.expectEqual(testing.BASE_URL + 'element/html/test.mp3', audio.src); } @@ -248,7 +248,7 @@ testing.expectEqual('', video.poster); video.poster = 'poster.jpg'; - testing.expectEqual('http://127.0.0.1:9582/src/browser/tests/element/html/poster.jpg', video.poster); + testing.expectEqual(testing.BASE_URL + 'element/html/poster.jpg', video.poster); } diff --git a/src/browser/tests/element/html/script/script.html b/src/browser/tests/element/html/script/script.html index 7db8b5fd..3629cf1a 100644 --- a/src/browser/tests/element/html/script/script.html +++ b/src/browser/tests/element/html/script/script.html @@ -6,7 +6,7 @@ let s = document.createElement('script'); testing.expectEqual('', s.src); - s.src = '/over.9000.js'; - testing.expectEqual('http://127.0.0.1:9582/over.9000.js', s.src); + s.src = 'over.9000.js'; + testing.expectEqual(testing.BASE_URL + 'element/html/script/over.9000.js', s.src); } diff --git a/src/browser/tests/element/inner.html b/src/browser/tests/element/inner.html index 1783020a..7c59ea14 100644 --- a/src/browser/tests/element/inner.html +++ b/src/browser/tests/element/inner.html @@ -45,7 +45,6 @@ testing.expectEqual('hi', $('#link').innerText); d1.innerHTML = ''; - testing.todo(null, $('#link')); diff --git a/src/browser/tests/window/screen.html b/src/browser/tests/window/screen.html index 5239ba43..61649033 100644 --- a/src/browser/tests/window/screen.html +++ b/src/browser/tests/window/screen.html @@ -3,8 +3,10 @@