diff options
author | Michael Weiss <dev.primeos@gmail.com> | 2021-01-18 15:16:27 +0100 |
---|---|---|
committer | Michael Weiss <dev.primeos@gmail.com> | 2021-01-20 19:20:53 +0100 |
commit | ff8866e2435f34bb1a6589a299a5d7abc24af931 (patch) | |
tree | b3eaead1d5631de16af43a46df51b9d7fa5c7fbb /nixos/tests/chromium.nix | |
parent | 9a1b21a39f1af85312fd24a041b24bcd262e1432 (diff) |
nixos/tests/chromium: Add ungoogled-chromium and Google Chrome
By default only `chromium` will be tested but other "channels" can be selected using e.g.: nix-build nixos/tests/chromium.nix -A ungoogled This also adds me as secondary maintainer (I'd like to get notified on PRs/issues and can review them).
Diffstat (limited to 'nixos/tests/chromium.nix')
-rw-r--r-- | nixos/tests/chromium.nix | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix index d4085bebac0ff..4d6b726d9e4c8 100644 --- a/nixos/tests/chromium.nix +++ b/nixos/tests/chromium.nix @@ -1,10 +1,14 @@ { system ? builtins.currentSystem , config ? {} , pkgs ? import ../.. { inherit system config; } -, channelMap ? { - stable = pkgs.chromium; - beta = pkgs.chromiumBeta; - dev = pkgs.chromiumDev; +, channelMap ? { # Maps "channels" to packages + stable = pkgs.chromium; + beta = pkgs.chromiumBeta; + dev = pkgs.chromiumDev; + ungoogled = pkgs.ungoogled-chromium; + chrome-stable = pkgs.google-chrome; + chrome-beta = pkgs.google-chrome-beta; + chrome-dev = pkgs.google-chrome-dev; } }: @@ -14,7 +18,7 @@ with pkgs.lib; mapAttrs (channel: chromiumPkg: makeTest rec { name = "chromium-${channel}"; meta = { - maintainers = with maintainers; [ aszlig ]; + maintainers = with maintainers; [ aszlig primeos ]; # https://github.com/NixOS/hydra/issues/591#issuecomment-435125621 inherit (chromiumPkg.meta) timeout; }; @@ -58,6 +62,19 @@ mapAttrs (channel: chromiumPkg: makeTest rec { return "su - ${user} -c " + shlex.quote(cmd) + def get_browser_binary(): + """Returns the name of the browser binary.""" + pname = "${getName chromiumPkg.name}" + if pname.find("chromium") != -1: + return "chromium" # Same name for all channels and ungoogled-chromium + if pname == "google-chrome": + return "google-chrome-stable" + if pname == "google-chrome-dev": + return "google-chrome-unstable" + # For google-chrome-beta and as fallback: + return pname + + def create_new_win(): with machine.nested("Creating a new Chromium window"): machine.execute( @@ -153,7 +170,14 @@ mapAttrs (channel: chromiumPkg: makeTest rec { machine.wait_for_x() url = "file://${startupHTML}" - machine.succeed(ru(f'ulimit -c unlimited; chromium "{url}" & disown')) + machine.succeed(ru(f'ulimit -c unlimited; "{get_browser_binary()}" "{url}" & disown')) + + if get_browser_binary().startswith("google-chrome"): + # Need to click away the first window: + machine.wait_for_text("Make Google Chrome the default browser") + machine.screenshot("google_chrome_default_browser_prompt") + machine.send_key("ret") + machine.wait_for_text("startup done") machine.wait_until_succeeds( ru( |