mirror of
https://github.com/nix-community/home-manager
synced 2024-11-30 06:59:45 +01:00
firefox: extract an overlay common to all tests
This commit is contained in:
parent
3b67ae3f66
commit
f033205b25
4 changed files with 217 additions and 229 deletions
|
@ -2,35 +2,20 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
lib.mkIf config.test.enableBig {
|
{
|
||||||
programs.firefox = {
|
imports = [ ./setup-firefox-mock-overlay.nix ];
|
||||||
enable = true;
|
|
||||||
enableGnomeExtensions = true;
|
config = lib.mkIf config.test.enableBig {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
enableGnomeExtensions = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
test.asserts.warnings.expected = [''
|
||||||
|
Using 'programs.firefox.enableGnomeExtensions' has been deprecated and
|
||||||
|
will be removed in the future. Please change to overriding the package
|
||||||
|
configuration using 'programs.firefox.package' instead. You can refer to
|
||||||
|
its example for how to do this.
|
||||||
|
''];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super: {
|
|
||||||
firefox-unwrapped = pkgs.runCommandLocal "firefox-0" {
|
|
||||||
meta.description = "I pretend to be Firefox";
|
|
||||||
passthru.gtk3 = null;
|
|
||||||
} ''
|
|
||||||
mkdir -p "$out"/{bin,lib}
|
|
||||||
touch "$out/bin/firefox"
|
|
||||||
chmod 755 "$out/bin/firefox"
|
|
||||||
'';
|
|
||||||
|
|
||||||
chrome-gnome-shell =
|
|
||||||
pkgs.runCommandLocal "dummy-chrome-gnome-shell" { } ''
|
|
||||||
mkdir -p $out/lib/mozilla/native-messaging-hosts
|
|
||||||
touch $out/lib/mozilla/native-messaging-hosts/dummy
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
test.asserts.warnings.expected = [''
|
|
||||||
Using 'programs.firefox.enableGnomeExtensions' has been deprecated and
|
|
||||||
will be removed in the future. Please change to overriding the package
|
|
||||||
configuration using 'programs.firefox.package' instead. You can refer to
|
|
||||||
its example for how to do this.
|
|
||||||
''];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,201 +2,192 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
lib.mkIf config.test.enableBig {
|
{
|
||||||
programs.firefox = {
|
imports = [ ./setup-firefox-mock-overlay.nix ];
|
||||||
enable = true;
|
|
||||||
profiles.basic.isDefault = true;
|
|
||||||
|
|
||||||
profiles.test = {
|
config = lib.mkIf config.test.enableBig {
|
||||||
id = 1;
|
programs.firefox = {
|
||||||
settings = {
|
enable = true;
|
||||||
"general.smoothScroll" = false;
|
profiles.basic.isDefault = true;
|
||||||
"browser.newtabpage.pinned" = [{
|
|
||||||
title = "NixOS";
|
|
||||||
url = "https://nixos.org";
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
profiles.bookmarks = {
|
profiles.test = {
|
||||||
id = 2;
|
id = 1;
|
||||||
settings = { "general.smoothScroll" = false; };
|
settings = {
|
||||||
bookmarks = [
|
"general.smoothScroll" = false;
|
||||||
{
|
"browser.newtabpage.pinned" = [{
|
||||||
toolbar = true;
|
title = "NixOS";
|
||||||
bookmarks = [{
|
url = "https://nixos.org";
|
||||||
name = "Home Manager";
|
|
||||||
url = "https://nixos.wiki/wiki/Home_Manager";
|
|
||||||
}];
|
}];
|
||||||
}
|
};
|
||||||
{
|
};
|
||||||
name = "wikipedia";
|
|
||||||
tags = [ "wiki" ];
|
|
||||||
keyword = "wiki";
|
|
||||||
url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "kernel.org";
|
|
||||||
url = "https://www.kernel.org";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Nix sites";
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
name = "homepage";
|
|
||||||
url = "https://nixos.org/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "wiki";
|
|
||||||
tags = [ "wiki" "nix" ];
|
|
||||||
url = "https://nixos.wiki/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Nix sites";
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
name = "homepage";
|
|
||||||
url = "https://nixos.org/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "wiki";
|
|
||||||
url = "https://nixos.wiki/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
profiles.search = {
|
profiles.bookmarks = {
|
||||||
id = 3;
|
id = 2;
|
||||||
search = {
|
settings = { "general.smoothScroll" = false; };
|
||||||
force = true;
|
bookmarks = [
|
||||||
default = "DuckDuckGo";
|
{
|
||||||
order = [ "Nix Packages" "NixOS Wiki" ];
|
toolbar = true;
|
||||||
engines = {
|
bookmarks = [{
|
||||||
"Nix Packages" = {
|
name = "Home Manager";
|
||||||
urls = [{
|
url = "https://nixos.wiki/wiki/Home_Manager";
|
||||||
template = "https://search.nixos.org/packages";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "type";
|
|
||||||
value = "packages";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}];
|
}];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "wikipedia";
|
||||||
|
tags = [ "wiki" ];
|
||||||
|
keyword = "wiki";
|
||||||
|
url =
|
||||||
|
"https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "kernel.org";
|
||||||
|
url = "https://www.kernel.org";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Nix sites";
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
name = "homepage";
|
||||||
|
url = "https://nixos.org/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "wiki";
|
||||||
|
tags = [ "wiki" "nix" ];
|
||||||
|
url = "https://nixos.wiki/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Nix sites";
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
name = "homepage";
|
||||||
|
url = "https://nixos.org/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "wiki";
|
||||||
|
url = "https://nixos.wiki/";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
icon =
|
profiles.search = {
|
||||||
"/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
id = 3;
|
||||||
|
search = {
|
||||||
|
force = true;
|
||||||
|
default = "DuckDuckGo";
|
||||||
|
order = [ "Nix Packages" "NixOS Wiki" ];
|
||||||
|
engines = {
|
||||||
|
"Nix Packages" = {
|
||||||
|
urls = [{
|
||||||
|
template = "https://search.nixos.org/packages";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "type";
|
||||||
|
value = "packages";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
|
||||||
definedAliases = [ "@np" ];
|
icon =
|
||||||
|
"/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
|
||||||
|
definedAliases = [ "@np" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"NixOS Wiki" = {
|
||||||
|
urls = [{
|
||||||
|
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||||
|
}];
|
||||||
|
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@nw" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Bing".metaData.hidden = true;
|
||||||
|
"Google".metaData.alias = "@g";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
"NixOS Wiki" = {
|
profiles.searchWithoutDefault = {
|
||||||
urls = [{
|
id = 4;
|
||||||
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
search = {
|
||||||
}];
|
force = true;
|
||||||
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
order = [ "Google" "Nix Packages" ];
|
||||||
updateInterval = 24 * 60 * 60 * 1000;
|
engines = {
|
||||||
definedAliases = [ "@nw" ];
|
"Nix Packages" = {
|
||||||
|
urls = [{
|
||||||
|
template = "https://search.nixos.org/packages";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "type";
|
||||||
|
value = "packages";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
|
||||||
|
definedAliases = [ "@np" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"Bing".metaData.hidden = true;
|
|
||||||
"Google".metaData.alias = "@g";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
profiles.searchWithoutDefault = {
|
nmt.script = ''
|
||||||
id = 4;
|
assertFileRegex \
|
||||||
search = {
|
home-path/bin/firefox \
|
||||||
force = true;
|
MOZ_APP_LAUNCHER
|
||||||
order = [ "Google" "Nix Packages" ];
|
|
||||||
engines = {
|
|
||||||
"Nix Packages" = {
|
|
||||||
urls = [{
|
|
||||||
template = "https://search.nixos.org/packages";
|
|
||||||
params = [
|
|
||||||
{
|
|
||||||
name = "type";
|
|
||||||
value = "packages";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "query";
|
|
||||||
value = "{searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}];
|
|
||||||
|
|
||||||
definedAliases = [ "@np" ];
|
assertDirectoryExists home-files/.mozilla/firefox/basic
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super: {
|
|
||||||
firefox-unwrapped = pkgs.runCommand "firefox-0" {
|
|
||||||
meta.description = "I pretend to be Firefox";
|
|
||||||
preferLocalBuild = true;
|
|
||||||
passthru.gtk3 = null;
|
|
||||||
} ''
|
|
||||||
mkdir -p "$out"/{bin,lib}
|
|
||||||
touch "$out/bin/firefox"
|
|
||||||
chmod 755 "$out/bin/firefox"
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
nmt.script = ''
|
|
||||||
assertFileRegex \
|
|
||||||
home-path/bin/firefox \
|
|
||||||
MOZ_APP_LAUNCHER
|
|
||||||
|
|
||||||
assertDirectoryExists home-files/.mozilla/firefox/basic
|
|
||||||
|
|
||||||
assertFileContent \
|
|
||||||
home-files/.mozilla/firefox/test/user.js \
|
|
||||||
${./profile-settings-expected-user.js}
|
|
||||||
|
|
||||||
bookmarksUserJs=$(normalizeStorePaths \
|
|
||||||
home-files/.mozilla/firefox/bookmarks/user.js)
|
|
||||||
|
|
||||||
assertFileContent \
|
|
||||||
$bookmarksUserJs \
|
|
||||||
${./profile-settings-expected-bookmarks-user.js}
|
|
||||||
|
|
||||||
bookmarksFile="$(sed -n \
|
|
||||||
'/browser.bookmarks.file/ {s|^.*\(/nix/store[^"]*\).*|\1|;p}' \
|
|
||||||
$TESTED/home-files/.mozilla/firefox/bookmarks/user.js)"
|
|
||||||
|
|
||||||
assertFileContent \
|
|
||||||
$bookmarksFile \
|
|
||||||
${./profile-settings-expected-bookmarks.html}
|
|
||||||
|
|
||||||
function assertFirefoxSearchContent() {
|
|
||||||
compressedSearch=$(normalizeStorePaths "$1")
|
|
||||||
|
|
||||||
decompressedSearch=$(dirname $compressedSearch)/search.json
|
|
||||||
${pkgs.mozlz4a}/bin/mozlz4a -d "$compressedSearch" >(${pkgs.jq}/bin/jq . > "$decompressedSearch")
|
|
||||||
|
|
||||||
assertFileContent \
|
assertFileContent \
|
||||||
$decompressedSearch \
|
home-files/.mozilla/firefox/test/user.js \
|
||||||
"$2"
|
${./profile-settings-expected-user.js}
|
||||||
}
|
|
||||||
|
|
||||||
assertFirefoxSearchContent \
|
bookmarksUserJs=$(normalizeStorePaths \
|
||||||
home-files/.mozilla/firefox/search/search.json.mozlz4 \
|
home-files/.mozilla/firefox/bookmarks/user.js)
|
||||||
${./profile-settings-expected-search.json}
|
|
||||||
|
|
||||||
assertFirefoxSearchContent \
|
assertFileContent \
|
||||||
home-files/.mozilla/firefox/searchWithoutDefault/search.json.mozlz4 \
|
$bookmarksUserJs \
|
||||||
${./profile-settings-expected-search-without-default.json}
|
${./profile-settings-expected-bookmarks-user.js}
|
||||||
'';
|
|
||||||
|
bookmarksFile="$(sed -n \
|
||||||
|
'/browser.bookmarks.file/ {s|^.*\(/nix/store[^"]*\).*|\1|;p}' \
|
||||||
|
$TESTED/home-files/.mozilla/firefox/bookmarks/user.js)"
|
||||||
|
|
||||||
|
assertFileContent \
|
||||||
|
$bookmarksFile \
|
||||||
|
${./profile-settings-expected-bookmarks.html}
|
||||||
|
|
||||||
|
function assertFirefoxSearchContent() {
|
||||||
|
compressedSearch=$(normalizeStorePaths "$1")
|
||||||
|
|
||||||
|
decompressedSearch=$(dirname $compressedSearch)/search.json
|
||||||
|
${pkgs.mozlz4a}/bin/mozlz4a -d "$compressedSearch" >(${pkgs.jq}/bin/jq . > "$decompressedSearch")
|
||||||
|
|
||||||
|
assertFileContent \
|
||||||
|
$decompressedSearch \
|
||||||
|
"$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
assertFirefoxSearchContent \
|
||||||
|
home-files/.mozilla/firefox/search/search.json.mozlz4 \
|
||||||
|
${./profile-settings-expected-search.json}
|
||||||
|
|
||||||
|
assertFirefoxSearchContent \
|
||||||
|
home-files/.mozilla/firefox/searchWithoutDefault/search.json.mozlz4 \
|
||||||
|
${./profile-settings-expected-search-without-default.json}
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(self: super: {
|
||||||
|
firefox-unwrapped = pkgs.runCommandLocal "firefox-0" {
|
||||||
|
meta.description = "I pretend to be Firefox";
|
||||||
|
passthru.gtk3 = null;
|
||||||
|
} ''
|
||||||
|
mkdir -p "$out"/{bin,lib}
|
||||||
|
touch "$out/bin/firefox"
|
||||||
|
chmod 755 "$out/bin/firefox"
|
||||||
|
'';
|
||||||
|
|
||||||
|
chrome-gnome-shell =
|
||||||
|
pkgs.runCommandLocal "dummy-chrome-gnome-shell" { } ''
|
||||||
|
mkdir -p $out/lib/mozilla/native-messaging-hosts
|
||||||
|
touch $out/lib/mozilla/native-messaging-hosts/dummy
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -2,28 +2,18 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
lib.mkIf config.test.enableBig {
|
{
|
||||||
home.stateVersion = "19.09";
|
imports = [ ./setup-firefox-mock-overlay.nix ];
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
config = lib.mkIf config.test.enableBig {
|
||||||
|
home.stateVersion = "19.09";
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
programs.firefox.enable = true;
|
||||||
(self: super: {
|
|
||||||
firefox-unwrapped = pkgs.runCommand "firefox-0" {
|
|
||||||
meta.description = "I pretend to be Firefox";
|
|
||||||
preferLocalBuild = true;
|
|
||||||
passthru.gtk3 = null;
|
|
||||||
} ''
|
|
||||||
mkdir -p "$out"/{bin,lib}
|
|
||||||
touch "$out/bin/firefox"
|
|
||||||
chmod 755 "$out/bin/firefox"
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
nmt.script = ''
|
nmt.script = ''
|
||||||
assertFileRegex \
|
assertFileRegex \
|
||||||
home-path/bin/firefox \
|
home-path/bin/firefox \
|
||||||
MOZ_APP_LAUNCHER
|
MOZ_APP_LAUNCHER
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue