aboutsummaryrefslogtreecommitdiff
path: root/home-manager/tests/modules/misc
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/tests/modules/misc')
-rw-r--r--home-manager/tests/modules/misc/fontconfig/default.nix5
-rw-r--r--home-manager/tests/modules/misc/fontconfig/multiple-font-packages.nix15
-rw-r--r--home-manager/tests/modules/misc/fontconfig/no-font-package.nix17
-rw-r--r--home-manager/tests/modules/misc/fontconfig/single-font-package.nix15
-rw-r--r--home-manager/tests/modules/misc/pam/default.nix3
-rw-r--r--home-manager/tests/modules/misc/pam/session-variables-expected.txt2
-rw-r--r--home-manager/tests/modules/misc/pam/session-variables.nix19
-rw-r--r--home-manager/tests/modules/misc/xdg/default.nix3
-rw-r--r--home-manager/tests/modules/misc/xdg/mime-apps-basics-expected.ini9
-rw-r--r--home-manager/tests/modules/misc/xdg/mime-apps-basics.nix30
-rw-r--r--home-manager/tests/modules/misc/xsession/basic-setxkbmap-expected.service12
-rw-r--r--home-manager/tests/modules/misc/xsession/basic-xprofile-expected.txt16
-rw-r--r--home-manager/tests/modules/misc/xsession/basic-xsession-expected.txt18
-rw-r--r--home-manager/tests/modules/misc/xsession/basic.nix37
-rw-r--r--home-manager/tests/modules/misc/xsession/default.nix4
-rw-r--r--home-manager/tests/modules/misc/xsession/keyboard-without-layout-expected.service12
-rw-r--r--home-manager/tests/modules/misc/xsession/keyboard-without-layout.nix33
17 files changed, 250 insertions, 0 deletions
diff --git a/home-manager/tests/modules/misc/fontconfig/default.nix b/home-manager/tests/modules/misc/fontconfig/default.nix
new file mode 100644
index 00000000000..b669e1c343c
--- /dev/null
+++ b/home-manager/tests/modules/misc/fontconfig/default.nix
@@ -0,0 +1,5 @@
+{
+ fontconfig-no-font-package = ./no-font-package.nix;
+ fontconfig-single-font-package = ./single-font-package.nix;
+ fontconfig-multiple-font-packages = ./multiple-font-packages.nix;
+}
diff --git a/home-manager/tests/modules/misc/fontconfig/multiple-font-packages.nix b/home-manager/tests/modules/misc/fontconfig/multiple-font-packages.nix
new file mode 100644
index 00000000000..3845b4ba4b1
--- /dev/null
+++ b/home-manager/tests/modules/misc/fontconfig/multiple-font-packages.nix
@@ -0,0 +1,15 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ home.packages = [ pkgs.comic-relief pkgs.unifont ];
+
+ fonts.fontconfig.enable = true;
+
+ nmt.script = ''
+ assertDirectoryNotEmpty home-path/lib/fontconfig/cache
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/misc/fontconfig/no-font-package.nix b/home-manager/tests/modules/misc/fontconfig/no-font-package.nix
new file mode 100644
index 00000000000..c4c687a1320
--- /dev/null
+++ b/home-manager/tests/modules/misc/fontconfig/no-font-package.nix
@@ -0,0 +1,17 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ home.packages = [
+ # Look, no font!
+ ];
+
+ fonts.fontconfig.enable = true;
+
+ nmt.script = ''
+ assertPathNotExists home-path/lib/fontconfig/cache
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/misc/fontconfig/single-font-package.nix b/home-manager/tests/modules/misc/fontconfig/single-font-package.nix
new file mode 100644
index 00000000000..b70bdf8a9a7
--- /dev/null
+++ b/home-manager/tests/modules/misc/fontconfig/single-font-package.nix
@@ -0,0 +1,15 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ home.packages = [ pkgs.comic-relief ];
+
+ fonts.fontconfig.enable = true;
+
+ nmt.script = ''
+ assertDirectoryNotEmpty home-path/lib/fontconfig/cache
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/misc/pam/default.nix b/home-manager/tests/modules/misc/pam/default.nix
new file mode 100644
index 00000000000..8a64f831caf
--- /dev/null
+++ b/home-manager/tests/modules/misc/pam/default.nix
@@ -0,0 +1,3 @@
+{
+ pam-session-variables = ./session-variables.nix;
+}
diff --git a/home-manager/tests/modules/misc/pam/session-variables-expected.txt b/home-manager/tests/modules/misc/pam/session-variables-expected.txt
new file mode 100644
index 00000000000..b84a12b7675
--- /dev/null
+++ b/home-manager/tests/modules/misc/pam/session-variables-expected.txt
@@ -0,0 +1,2 @@
+V1 OVERRIDE="v1"
+V2 OVERRIDE="v2-v1"
diff --git a/home-manager/tests/modules/misc/pam/session-variables.nix b/home-manager/tests/modules/misc/pam/session-variables.nix
new file mode 100644
index 00000000000..4fbec4163b5
--- /dev/null
+++ b/home-manager/tests/modules/misc/pam/session-variables.nix
@@ -0,0 +1,19 @@
+{ config, lib, ... }:
+
+with lib;
+
+{
+ config = {
+ pam.sessionVariables = {
+ V1 = "v1";
+ V2 = "v2-${config.pam.sessionVariables.V1}";
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.pam_environment
+ assertFileContent \
+ home-files/.pam_environment \
+ ${./session-variables-expected.txt}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/misc/xdg/default.nix b/home-manager/tests/modules/misc/xdg/default.nix
new file mode 100644
index 00000000000..5772becd712
--- /dev/null
+++ b/home-manager/tests/modules/misc/xdg/default.nix
@@ -0,0 +1,3 @@
+{
+ xdg-mime-apps-basics = ./mime-apps-basics.nix;
+}
diff --git a/home-manager/tests/modules/misc/xdg/mime-apps-basics-expected.ini b/home-manager/tests/modules/misc/xdg/mime-apps-basics-expected.ini
new file mode 100644
index 00000000000..c27181eb58f
--- /dev/null
+++ b/home-manager/tests/modules/misc/xdg/mime-apps-basics-expected.ini
@@ -0,0 +1,9 @@
+[Added Associations]
+mimetype1=foo1.desktop;foo2.desktop;foo3.desktop
+mimetype2=foo4.desktop
+
+[Default Applications]
+mimetype1=default1.desktop;default2.desktop
+
+[Removed Associations]
+mimetype1=foo5.desktop
diff --git a/home-manager/tests/modules/misc/xdg/mime-apps-basics.nix b/home-manager/tests/modules/misc/xdg/mime-apps-basics.nix
new file mode 100644
index 00000000000..2c32071064c
--- /dev/null
+++ b/home-manager/tests/modules/misc/xdg/mime-apps-basics.nix
@@ -0,0 +1,30 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ xdg.mimeApps = {
+ enable = true;
+ associations = {
+ added = {
+ "mimetype1" = [ "foo1.desktop" "foo2.desktop" "foo3.desktop" ];
+ "mimetype2" = "foo4.desktop";
+ };
+ removed = {
+ mimetype1 = "foo5.desktop";
+ };
+ };
+ defaultApplications = {
+ "mimetype1" = [ "default1.desktop" "default2.desktop" ];
+ };
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.config/mimeapps.list
+ assertFileContent \
+ home-files/.config/mimeapps.list \
+ ${./mime-apps-basics-expected.ini}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/misc/xsession/basic-setxkbmap-expected.service b/home-manager/tests/modules/misc/xsession/basic-setxkbmap-expected.service
new file mode 100644
index 00000000000..39f876dd60e
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/basic-setxkbmap-expected.service
@@ -0,0 +1,12 @@
+[Install]
+WantedBy=graphical-session.target
+
+[Service]
+ExecStart=@setxkbmap@/bin/setxkbmap -layout 'us' -variant ''
+RemainAfterExit=true
+Type=oneshot
+
+[Unit]
+After=graphical-session-pre.target
+Description=Set up keyboard in X
+PartOf=graphical-session.target
diff --git a/home-manager/tests/modules/misc/xsession/basic-xprofile-expected.txt b/home-manager/tests/modules/misc/xsession/basic-xprofile-expected.txt
new file mode 100644
index 00000000000..05733a974ff
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/basic-xprofile-expected.txt
@@ -0,0 +1,16 @@
+. "/test-home/.nix-profile/etc/profile.d/hm-session-vars.sh"
+
+if [ -e "$HOME/.profile" ]; then
+ . "$HOME/.profile"
+fi
+
+# If there are any running services from a previous session.
+# Need to run this in xprofile because the NixOS xsession
+# script starts up graphical-session.target.
+systemctl --user stop graphical-session.target graphical-session-pre.target
+
+systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS DISPLAY SSH_AUTH_SOCK XAUTHORITY XDG_DATA_DIRS XDG_RUNTIME_DIR XDG_SESSION_ID EXTRA_IMPORTED_VARIABLE
+
+profile extra commands
+
+export HM_XPROFILE_SOURCED=1
diff --git a/home-manager/tests/modules/misc/xsession/basic-xsession-expected.txt b/home-manager/tests/modules/misc/xsession/basic-xsession-expected.txt
new file mode 100644
index 00000000000..c11b7c33048
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/basic-xsession-expected.txt
@@ -0,0 +1,18 @@
+if [ -z "$HM_XPROFILE_SOURCED" ]; then
+ . ~/.xprofile
+fi
+unset HM_XPROFILE_SOURCED
+
+systemctl --user start hm-graphical-session.target
+
+init extra commands
+
+window manager command
+
+systemctl --user stop graphical-session.target
+systemctl --user stop graphical-session-pre.target
+
+# Wait until the units actually stop.
+while [ -n "$(systemctl --user --no-legend --state=deactivating list-units)" ]; do
+ sleep 0.5
+done
diff --git a/home-manager/tests/modules/misc/xsession/basic.nix b/home-manager/tests/modules/misc/xsession/basic.nix
new file mode 100644
index 00000000000..60623d1bf6b
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/basic.nix
@@ -0,0 +1,37 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ home.homeDirectory = "/test-home";
+
+ xsession = {
+ enable = true;
+ windowManager.command = "window manager command";
+ importedVariables = [ "EXTRA_IMPORTED_VARIABLE" ];
+ initExtra = "init extra commands";
+ profileExtra = "profile extra commands";
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.xprofile
+ assertFileContent \
+ home-files/.xprofile \
+ ${./basic-xprofile-expected.txt}
+
+ assertFileExists home-files/.xsession
+ assertFileContent \
+ home-files/.xsession \
+ ${./basic-xsession-expected.txt}
+
+ assertFileExists home-files/.config/systemd/user/setxkbmap.service
+ assertFileContent \
+ home-files/.config/systemd/user/setxkbmap.service \
+ ${pkgs.substituteAll {
+ src = ./basic-setxkbmap-expected.service;
+ inherit (pkgs.xorg) setxkbmap;
+ }}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/misc/xsession/default.nix b/home-manager/tests/modules/misc/xsession/default.nix
new file mode 100644
index 00000000000..2ddbf47efac
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/default.nix
@@ -0,0 +1,4 @@
+{
+ xsession-basic = ./basic.nix;
+ xsession-keyboard-without-layout = ./keyboard-without-layout.nix;
+}
diff --git a/home-manager/tests/modules/misc/xsession/keyboard-without-layout-expected.service b/home-manager/tests/modules/misc/xsession/keyboard-without-layout-expected.service
new file mode 100644
index 00000000000..a04af53dad7
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/keyboard-without-layout-expected.service
@@ -0,0 +1,12 @@
+[Install]
+WantedBy=graphical-session.target
+
+[Service]
+ExecStart=@setxkbmap@/bin/setxkbmap -option 'ctrl:nocaps' -option 'altwin:no_win'
+RemainAfterExit=true
+Type=oneshot
+
+[Unit]
+After=graphical-session-pre.target
+Description=Set up keyboard in X
+PartOf=graphical-session.target
diff --git a/home-manager/tests/modules/misc/xsession/keyboard-without-layout.nix b/home-manager/tests/modules/misc/xsession/keyboard-without-layout.nix
new file mode 100644
index 00000000000..b7eb3decebb
--- /dev/null
+++ b/home-manager/tests/modules/misc/xsession/keyboard-without-layout.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+ config = {
+ home.stateVersion = "19.09";
+
+ home.homeDirectory = "/test-home";
+
+ home.keyboard = {
+ options = [ "ctrl:nocaps" "altwin:no_win" ];
+ };
+
+ xsession = {
+ enable = true;
+ windowManager.command = "window manager command";
+ importedVariables = [ "EXTRA_IMPORTED_VARIABLE" ];
+ initExtra = "init extra commands";
+ profileExtra = "profile extra commands";
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.config/systemd/user/setxkbmap.service
+ assertFileContent \
+ home-files/.config/systemd/user/setxkbmap.service \
+ ${pkgs.substituteAll {
+ src = ./keyboard-without-layout-expected.service;
+ inherit (pkgs.xorg) setxkbmap;
+ }}
+ '';
+ };
+}