Work started on editor support.
This commit is contained in:
1 parent
0992ffee0d
commit
6f6d4040c4
9 files changed
+401
-5
No files matched your search
@@ -16,11 +16,13 @@ from gi.repository import Gio, GLib
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--build-dir", default="build")
|
||||
parser.add_argument("--session", action="store_true")
|
||||
parser.add_argument("--fixture", choices=("menu", "edit"), default="menu")
|
||||
args = parser.parse_args()
|
||||
build = Path(args.build_dir).resolve()
|
||||
if not args.session:
|
||||
sys.exit(subprocess.call(["dbus-run-session", "--", sys.executable,
|
||||
__file__, "--session", "--build-dir", str(build)]))
|
||||
__file__, "--session", "--build-dir", str(build),
|
||||
"--fixture", args.fixture]))
|
||||
|
||||
interface = "org.stormux.Cthulhu1.Service"
|
||||
object_path = "/org/stormux/Cthulhu1/Service"
|
||||
@@ -47,7 +49,7 @@ with tempfile.TemporaryDirectory(prefix="wine-access-menus-") as temporary:
|
||||
WINEDLLOVERRIDES="mscoree,mshtml=", CTHULHU_WINE_ACCESS_MANAGED="1")
|
||||
fixture = Path(temporary) / "menu-fixture.exe"
|
||||
subprocess.run(["x86_64-w64-mingw32-gcc", "-Wall", "-Wextra", "-mwindows",
|
||||
"-o", str(fixture), str(Path(__file__).with_name("menu_fixture.c")),
|
||||
"-o", str(fixture), str(Path(__file__).with_name(args.fixture + "_fixture.c")),
|
||||
"-luser32"], check=True)
|
||||
helper = None
|
||||
app = None
|
||||
@@ -72,6 +74,22 @@ with tempfile.TemporaryDirectory(prefix="wine-access-menus-") as temporary:
|
||||
while GLib.MainContext.default().iteration(False):
|
||||
pass
|
||||
time.sleep(0.01)
|
||||
if args.fixture == "edit":
|
||||
text_events = [e for e in events if e[0].endswith(":text")]
|
||||
for event in text_events:
|
||||
print(event[2:7])
|
||||
spoken = [e[2] for e in text_events]
|
||||
for expected in ("l", "beta", "second line", "s selected", "e selected",
|
||||
"e unselected", "s unselected", "s deleted", "e deleted",
|
||||
"alpha selected", "alpha deleted", "😀"):
|
||||
assert expected in spoken, f"missing editor feedback: {expected!r}"
|
||||
assert any(e[3] == "edit" and e[4] == "alpha beta" for e in text_events), "initial line missing"
|
||||
assert any(e[3] == "read only edit" for e in text_events), "read-only focus missing"
|
||||
assert any(e[6] == "password" for e in text_events), "password role missing"
|
||||
assert not any("private-password-fixture" in str(e) for e in events), "password leaked"
|
||||
assert "😀 deleted" not in spoken, "read-only control reported deletion"
|
||||
print("PASS: editor focus, characters, words, lines, selection, deletion, Unicode, passwords, and read-only controls")
|
||||
sys.exit(0)
|
||||
menus = [event for event in events if ":menu:" in event[0]]
|
||||
for event in menus:
|
||||
print(event[2:7])
|
||||
|
||||
Reference in new issue
Block a user