From eac3e7ad6818c77d76f31146423e04f53a8baa11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Abdelkader=20Mart=C3=ADnez=20P=C3=A9rez?= Date: Tue, 7 Jan 2025 01:46:32 +0100 Subject: [PATCH] test: configuradorfnmt nixos module firefox integration --- flake.nix | 1 + nix/tests/nixos/configuradorfnmt-request.nix | 58 ++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 nix/tests/nixos/configuradorfnmt-request.nix diff --git a/flake.nix b/flake.nix index ca088cb..e51151b 100644 --- a/flake.nix +++ b/flake.nix @@ -129,6 +129,7 @@ }; checks = { nixos-autofirma-sign = pkgs.callPackage ./nix/tests/nixos/autofirma-sign.nix { inherit self; }; + nixos-configuradorfnmt-request = pkgs.callPackage ./nix/tests/nixos/configuradorfnmt-request.nix { inherit self; }; hm-nixos-module-installation-autofirma-sign = pkgs.callPackage ./nix/tests/hm/nixos-module-installation/autofirma-sign.nix { inherit self home-manager; }; }; }; diff --git a/nix/tests/nixos/configuradorfnmt-request.nix b/nix/tests/nixos/configuradorfnmt-request.nix new file mode 100644 index 0000000..83028d7 --- /dev/null +++ b/nix/tests/nixos/configuradorfnmt-request.nix @@ -0,0 +1,58 @@ +{ self, pkgs, lib }: +let + stateVersion = "${lib.versions.major lib.version}.${lib.versions.minor lib.version}"; +in +pkgs.nixosTest { + name = "test-nixos-configuradorfnmt-request"; + nodes.machine = { config, pkgs, modulesPath, ... }: { + imports = [ + self.nixosModules.configuradorfnmt + (modulesPath + "./../tests/common/x11.nix") + ]; + + programs.configuradorfnmt.enable = true; + programs.configuradorfnmt.firefoxIntegration.enable = true; + + programs.firefox.enable = true; + + # Allow Firefox to open AutoConfig settings without user interaction + programs.firefox.autoConfig = '' + pref("network.protocol-handler.expose.fnmtcr", true); + ''; + + environment.systemPackages = [ + (pkgs.writeScriptBin "open-configuradorfnmt-via-firefox" '' + cat <<'EOF' > /tmp/configuradorfnmt.html + + + + + +

Redirecting to configuradorfnmt...

+ + + EOF + + ${lib.getExe config.programs.firefox.package} /tmp/configuradorfnmt.html + '') + ]; + system.stateVersion = stateVersion; + }; + + testScript = '' + machine.wait_for_unit("default.target") + machine.wait_for_x() + + # Open firefox and allow it to import AutoConfig settings + machine.execute("firefox >&2 &") + machine.wait_for_window("Mozilla Firefox") + machine.sleep(5) + + # Open an fnmtcr:// URL in Firefox + machine.execute("open-configuradorfnmt-via-firefox") + + # Configurador FNMT-RCM should open automatically + machine.wait_for_window('Introduzca la contraseƱa', 30) + machine.screenshot("screen") + ''; +}