at master 2.7 kB view raw
1{ config, pkgs, ... }: 2{ 3 name = "Basic Omnom Test"; 4 meta = { 5 inherit (pkgs.omnom.meta) maintainers; 6 }; 7 8 nodes = { 9 server = 10 { pkgs, ... }: 11 { 12 imports = [ 13 ../common/x11.nix 14 ./config.nix 15 ]; 16 17 environment.systemPackages = [ pkgs.xdotool ]; 18 }; 19 }; 20 21 testScript = 22 let 23 port = toString config.nodes.server.services.omnom.port; 24 in 25 # python 26 '' 27 import re 28 29 def open_omnom(): 30 # Add-ons Manager 31 server.succeed("xdotool mousemove --sync 960 90 click 1") 32 server.sleep(10) 33 # omnom 34 server.succeed("xdotool mousemove --sync 700 190 click 1") 35 server.sleep(10) 36 37 38 service_url = "http://127.0.0.1:${toString port}" 39 40 server.start() 41 server.wait_for_unit("omnom.service") 42 server.wait_for_open_port(${toString port}) 43 server.succeed(f"curl -sf '{service_url}'") 44 45 output = server.succeed("omnom create-user user user@example.com") 46 match = re.search(r"Visit (.+?) to sign in", output) 47 assert match is not None, "Login URL not found" 48 login_url = match[1].replace("0.0.0.0", "127.0.0.1") 49 50 output = server.succeed("omnom create-token user addon") 51 match = re.search(r"Token (.+?) created", output) 52 assert match is not None, "Addon token not found" 53 token = match[1] 54 55 server.wait_for_x() 56 server.succeed(f"librewolf --new-window '{login_url}' >&2 &") 57 server.wait_for_window("Omnom") 58 59 open_omnom() 60 61 # token 62 server.succeed("xdotool mousemove --sync 700 350 click 1") 63 server.succeed(f"xdotool type {token}") 64 server.sleep(10) 65 66 # url 67 server.succeed("xdotool mousemove --sync 700 470 click 1") 68 server.succeed(f"xdotool type '{service_url}'") 69 server.sleep(10) 70 71 # submit 72 server.succeed("xdotool mousemove --sync 900 520 click 1") 73 server.sleep(10) 74 75 open_omnom() 76 77 # save 78 server.succeed("xdotool mousemove --sync 900 520 click 1") 79 server.sleep(10) 80 81 # refresh 82 server.succeed("xdotool mousemove --sync 100 80 click 1") 83 server.sleep(10) 84 85 server.screenshot("home.png") 86 87 # view bookmarks 88 server.succeed("xdotool mousemove --sync 300 130 click 1") 89 server.sleep(10) 90 91 # view snapshot 92 server.succeed("xdotool mousemove --sync 970 230 click 1") 93 server.sleep(10) 94 server.succeed("xdotool mousemove --sync 160 340 click 1") 95 server.sleep(10) 96 97 server.screenshot("screenshot.png") 98 99 # view details 100 server.succeed("xdotool mousemove --sync 290 200 click 1") 101 server.sleep(10) 102 103 server.screenshot("snapshot_details.png") 104 ''; 105}