diff --git a/modules/programs/firefox.nix b/modules/programs/firefox.nix index 145a0334e..2ce67776d 100644 --- a/modules/programs/firefox.nix +++ b/modules/programs/firefox.nix @@ -172,7 +172,7 @@ let else if versionAtLeast config.home.stateVersion "19.09" then package.override (old: { cfg = old.cfg or { } // fcfg; - extraPolicies = cfg.policies; + extraPolicies = (old.extraPolicies or { }) // cfg.policies; }) else (pkgs.wrapFirefox.override { config = bcfg; }) package { }; diff --git a/tests/modules/programs/firefox/policies.nix b/tests/modules/programs/firefox/policies.nix index b855ee870..7b503d3d8 100644 --- a/tests/modules/programs/firefox/policies.nix +++ b/tests/modules/programs/firefox/policies.nix @@ -9,6 +9,9 @@ programs.firefox = { enable = true; policies = { BlockAboutConfig = true; }; + package = pkgs.firefox.override { + extraPolicies = { DownloadDirectory = "/foo"; }; + }; }; nmt.script = '' @@ -16,11 +19,18 @@ config_file="${config.programs.firefox.finalPackage}/lib/firefox/distribution/policies.json" assertFileExists "$config_file" + blockAboutConfig_actual_value="$($jq ".policies.BlockAboutConfig" $config_file)" if [[ $blockAboutConfig_actual_value != "true" ]]; then fail "Expected '$config_file' to set 'policies.BlockAboutConfig' to true" fi + + downloadDirectory_actual_value="$($jq ".policies.DownloadDirectory" $config_file)" + + if [[ $downloadDirectory_actual_value != "\"/foo\"" ]]; then + fail "Expected '$config_file' to set 'policies.DownloadDirectory' to \"/foo\"" + fi ''; }; }