diff --git a/Makefile b/Makefile index 89ee1cb..4931975 100644 --- a/Makefile +++ b/Makefile @@ -16,8 +16,8 @@ LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \ schemas/gschemas.compiled metadata.json LICENSE -# These five recipes can be invoked by the user. -.PHONY: zip install uninstall pot clean +# These seven recipes can be invoked by the user. +.PHONY: zip install uninstall pot clean test references # The zip recipes only bundles the extension without installing it. zip: $(ZIP_NAME) @@ -41,6 +41,28 @@ pot: $(JS_FILES) $(UI_FILES) --output=po/$(NAME).pot \ $(JS_FILES) $(UI_FILES) +# This runs several tests in containerized versions of GNOME Shell. +test: + @ for version in 32 33 34 35 36 ; do \ + for session in "gnome-xsession" "gnome-wayland-nested" ; do \ + echo ; \ + echo "Running Tests on Fedora $$version ($$session)." ; \ + echo ; \ + ./tests/run-test.sh -s $$session -v $$version ; \ + done \ + done + +# This re-generates all reference images required by the tests. +references: + @ for version in 32 33 34 35 36 ; do \ + for session in "gnome-xsession" "gnome-wayland-nested" ; do \ + echo ; \ + echo "Generating References for Fedora $$version ($$session)." ; \ + echo ; \ + ./tests/generate-references.sh -s $$session -v $$version ; \ + done \ + done + # This removes all temporary files created with the other recipes. clean: rm -rf $(ZIP_NAME) \ diff --git a/tests/references/broken-glass-close-gnome-wayland-nested-34.png b/tests/references/broken-glass-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..0411c8e Binary files /dev/null and b/tests/references/broken-glass-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/broken-glass-close-gnome-wayland-nested-35.png b/tests/references/broken-glass-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..1f1989f Binary files /dev/null and b/tests/references/broken-glass-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/broken-glass-close-gnome-wayland-nested-36.png b/tests/references/broken-glass-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..543aed5 Binary files /dev/null and b/tests/references/broken-glass-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/broken-glass-close-gnome-xsession-34.png b/tests/references/broken-glass-close-gnome-xsession-34.png new file mode 100644 index 0000000..85fc38f Binary files /dev/null and b/tests/references/broken-glass-close-gnome-xsession-34.png differ diff --git a/tests/references/broken-glass-close-gnome-xsession-35.png b/tests/references/broken-glass-close-gnome-xsession-35.png new file mode 100644 index 0000000..27373eb Binary files /dev/null and b/tests/references/broken-glass-close-gnome-xsession-35.png differ diff --git a/tests/references/broken-glass-close-gnome-xsession-36.png b/tests/references/broken-glass-close-gnome-xsession-36.png new file mode 100644 index 0000000..180b488 Binary files /dev/null and b/tests/references/broken-glass-close-gnome-xsession-36.png differ diff --git a/tests/references/broken-glass-open-gnome-wayland-nested-34.png b/tests/references/broken-glass-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..f695659 Binary files /dev/null and b/tests/references/broken-glass-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/broken-glass-open-gnome-wayland-nested-35.png b/tests/references/broken-glass-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..071f22f Binary files /dev/null and b/tests/references/broken-glass-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/broken-glass-open-gnome-wayland-nested-36.png b/tests/references/broken-glass-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..3622103 Binary files /dev/null and b/tests/references/broken-glass-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/broken-glass-open-gnome-xsession-34.png b/tests/references/broken-glass-open-gnome-xsession-34.png new file mode 100644 index 0000000..64bbf3a Binary files /dev/null and b/tests/references/broken-glass-open-gnome-xsession-34.png differ diff --git a/tests/references/broken-glass-open-gnome-xsession-35.png b/tests/references/broken-glass-open-gnome-xsession-35.png new file mode 100644 index 0000000..63df622 Binary files /dev/null and b/tests/references/broken-glass-open-gnome-xsession-35.png differ diff --git a/tests/references/broken-glass-open-gnome-xsession-36.png b/tests/references/broken-glass-open-gnome-xsession-36.png new file mode 100644 index 0000000..76bb6b0 Binary files /dev/null and b/tests/references/broken-glass-open-gnome-xsession-36.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-32.png b/tests/references/energize-a-close-gnome-wayland-nested-32.png new file mode 100644 index 0000000..f6b5dcc Binary files /dev/null and b/tests/references/energize-a-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-33.png b/tests/references/energize-a-close-gnome-wayland-nested-33.png new file mode 100644 index 0000000..97e5ce2 Binary files /dev/null and b/tests/references/energize-a-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-34.png b/tests/references/energize-a-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..653dd03 Binary files /dev/null and b/tests/references/energize-a-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-35.png b/tests/references/energize-a-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..653dd03 Binary files /dev/null and b/tests/references/energize-a-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-36.png b/tests/references/energize-a-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..1c682c0 Binary files /dev/null and b/tests/references/energize-a-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-32.png b/tests/references/energize-a-close-gnome-xsession-32.png new file mode 100644 index 0000000..f6b5dcc Binary files /dev/null and b/tests/references/energize-a-close-gnome-xsession-32.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-33.png b/tests/references/energize-a-close-gnome-xsession-33.png new file mode 100644 index 0000000..97e5ce2 Binary files /dev/null and b/tests/references/energize-a-close-gnome-xsession-33.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-34.png b/tests/references/energize-a-close-gnome-xsession-34.png new file mode 100644 index 0000000..0f41509 Binary files /dev/null and b/tests/references/energize-a-close-gnome-xsession-34.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-35.png b/tests/references/energize-a-close-gnome-xsession-35.png new file mode 100644 index 0000000..0f41509 Binary files /dev/null and b/tests/references/energize-a-close-gnome-xsession-35.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-36.png b/tests/references/energize-a-close-gnome-xsession-36.png new file mode 100644 index 0000000..5ac8576 Binary files /dev/null and b/tests/references/energize-a-close-gnome-xsession-36.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-32.png b/tests/references/energize-a-open-gnome-wayland-nested-32.png new file mode 100644 index 0000000..fcefdfc Binary files /dev/null and b/tests/references/energize-a-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-33.png b/tests/references/energize-a-open-gnome-wayland-nested-33.png new file mode 100644 index 0000000..3969643 Binary files /dev/null and b/tests/references/energize-a-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-34.png b/tests/references/energize-a-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..102c6b7 Binary files /dev/null and b/tests/references/energize-a-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-35.png b/tests/references/energize-a-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..102c6b7 Binary files /dev/null and b/tests/references/energize-a-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-36.png b/tests/references/energize-a-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..6dd8e2e Binary files /dev/null and b/tests/references/energize-a-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-32.png b/tests/references/energize-a-open-gnome-xsession-32.png new file mode 100644 index 0000000..fcefdfc Binary files /dev/null and b/tests/references/energize-a-open-gnome-xsession-32.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-33.png b/tests/references/energize-a-open-gnome-xsession-33.png new file mode 100644 index 0000000..3969643 Binary files /dev/null and b/tests/references/energize-a-open-gnome-xsession-33.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-34.png b/tests/references/energize-a-open-gnome-xsession-34.png new file mode 100644 index 0000000..69677e8 Binary files /dev/null and b/tests/references/energize-a-open-gnome-xsession-34.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-35.png b/tests/references/energize-a-open-gnome-xsession-35.png new file mode 100644 index 0000000..69677e8 Binary files /dev/null and b/tests/references/energize-a-open-gnome-xsession-35.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-36.png b/tests/references/energize-a-open-gnome-xsession-36.png new file mode 100644 index 0000000..88ee669 Binary files /dev/null and b/tests/references/energize-a-open-gnome-xsession-36.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-32.png b/tests/references/energize-b-close-gnome-wayland-nested-32.png new file mode 100644 index 0000000..8419318 Binary files /dev/null and b/tests/references/energize-b-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-33.png b/tests/references/energize-b-close-gnome-wayland-nested-33.png new file mode 100644 index 0000000..6725b9e Binary files /dev/null and b/tests/references/energize-b-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-34.png b/tests/references/energize-b-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..7e8ce24 Binary files /dev/null and b/tests/references/energize-b-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-35.png b/tests/references/energize-b-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..7e8ce24 Binary files /dev/null and b/tests/references/energize-b-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-36.png b/tests/references/energize-b-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..a0f1ece Binary files /dev/null and b/tests/references/energize-b-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-32.png b/tests/references/energize-b-close-gnome-xsession-32.png new file mode 100644 index 0000000..8419318 Binary files /dev/null and b/tests/references/energize-b-close-gnome-xsession-32.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-33.png b/tests/references/energize-b-close-gnome-xsession-33.png new file mode 100644 index 0000000..6725b9e Binary files /dev/null and b/tests/references/energize-b-close-gnome-xsession-33.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-34.png b/tests/references/energize-b-close-gnome-xsession-34.png new file mode 100644 index 0000000..5c629cf Binary files /dev/null and b/tests/references/energize-b-close-gnome-xsession-34.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-35.png b/tests/references/energize-b-close-gnome-xsession-35.png new file mode 100644 index 0000000..5c629cf Binary files /dev/null and b/tests/references/energize-b-close-gnome-xsession-35.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-36.png b/tests/references/energize-b-close-gnome-xsession-36.png new file mode 100644 index 0000000..728d3d4 Binary files /dev/null and b/tests/references/energize-b-close-gnome-xsession-36.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-32.png b/tests/references/energize-b-open-gnome-wayland-nested-32.png new file mode 100644 index 0000000..7c1297b Binary files /dev/null and b/tests/references/energize-b-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-33.png b/tests/references/energize-b-open-gnome-wayland-nested-33.png new file mode 100644 index 0000000..8c56a56 Binary files /dev/null and b/tests/references/energize-b-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-34.png b/tests/references/energize-b-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..0046ebe Binary files /dev/null and b/tests/references/energize-b-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-35.png b/tests/references/energize-b-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..0046ebe Binary files /dev/null and b/tests/references/energize-b-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-36.png b/tests/references/energize-b-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..eb10914 Binary files /dev/null and b/tests/references/energize-b-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-32.png b/tests/references/energize-b-open-gnome-xsession-32.png new file mode 100644 index 0000000..7c1297b Binary files /dev/null and b/tests/references/energize-b-open-gnome-xsession-32.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-33.png b/tests/references/energize-b-open-gnome-xsession-33.png new file mode 100644 index 0000000..8c56a56 Binary files /dev/null and b/tests/references/energize-b-open-gnome-xsession-33.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-34.png b/tests/references/energize-b-open-gnome-xsession-34.png new file mode 100644 index 0000000..2245ffe Binary files /dev/null and b/tests/references/energize-b-open-gnome-xsession-34.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-35.png b/tests/references/energize-b-open-gnome-xsession-35.png new file mode 100644 index 0000000..2245ffe Binary files /dev/null and b/tests/references/energize-b-open-gnome-xsession-35.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-36.png b/tests/references/energize-b-open-gnome-xsession-36.png new file mode 100644 index 0000000..51cc8b6 Binary files /dev/null and b/tests/references/energize-b-open-gnome-xsession-36.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-32.png b/tests/references/fire-close-gnome-wayland-nested-32.png new file mode 100644 index 0000000..08e36b8 Binary files /dev/null and b/tests/references/fire-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-33.png b/tests/references/fire-close-gnome-wayland-nested-33.png new file mode 100644 index 0000000..8398e90 Binary files /dev/null and b/tests/references/fire-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-34.png b/tests/references/fire-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..17f8f4c Binary files /dev/null and b/tests/references/fire-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-35.png b/tests/references/fire-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..17f8f4c Binary files /dev/null and b/tests/references/fire-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-36.png b/tests/references/fire-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..59dde9a Binary files /dev/null and b/tests/references/fire-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/fire-close-gnome-xsession-32.png b/tests/references/fire-close-gnome-xsession-32.png new file mode 100644 index 0000000..08e36b8 Binary files /dev/null and b/tests/references/fire-close-gnome-xsession-32.png differ diff --git a/tests/references/fire-close-gnome-xsession-33.png b/tests/references/fire-close-gnome-xsession-33.png new file mode 100644 index 0000000..8398e90 Binary files /dev/null and b/tests/references/fire-close-gnome-xsession-33.png differ diff --git a/tests/references/fire-close-gnome-xsession-34.png b/tests/references/fire-close-gnome-xsession-34.png new file mode 100644 index 0000000..38ac0c5 Binary files /dev/null and b/tests/references/fire-close-gnome-xsession-34.png differ diff --git a/tests/references/fire-close-gnome-xsession-35.png b/tests/references/fire-close-gnome-xsession-35.png new file mode 100644 index 0000000..38ac0c5 Binary files /dev/null and b/tests/references/fire-close-gnome-xsession-35.png differ diff --git a/tests/references/fire-close-gnome-xsession-36.png b/tests/references/fire-close-gnome-xsession-36.png new file mode 100644 index 0000000..8b9fca9 Binary files /dev/null and b/tests/references/fire-close-gnome-xsession-36.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-32.png b/tests/references/fire-open-gnome-wayland-nested-32.png new file mode 100644 index 0000000..3e76277 Binary files /dev/null and b/tests/references/fire-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-33.png b/tests/references/fire-open-gnome-wayland-nested-33.png new file mode 100644 index 0000000..668fa28 Binary files /dev/null and b/tests/references/fire-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-34.png b/tests/references/fire-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..a258046 Binary files /dev/null and b/tests/references/fire-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-35.png b/tests/references/fire-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..a258046 Binary files /dev/null and b/tests/references/fire-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-36.png b/tests/references/fire-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..456f20b Binary files /dev/null and b/tests/references/fire-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/fire-open-gnome-xsession-32.png b/tests/references/fire-open-gnome-xsession-32.png new file mode 100644 index 0000000..3e76277 Binary files /dev/null and b/tests/references/fire-open-gnome-xsession-32.png differ diff --git a/tests/references/fire-open-gnome-xsession-33.png b/tests/references/fire-open-gnome-xsession-33.png new file mode 100644 index 0000000..668fa28 Binary files /dev/null and b/tests/references/fire-open-gnome-xsession-33.png differ diff --git a/tests/references/fire-open-gnome-xsession-34.png b/tests/references/fire-open-gnome-xsession-34.png new file mode 100644 index 0000000..b257176 Binary files /dev/null and b/tests/references/fire-open-gnome-xsession-34.png differ diff --git a/tests/references/fire-open-gnome-xsession-35.png b/tests/references/fire-open-gnome-xsession-35.png new file mode 100644 index 0000000..b257176 Binary files /dev/null and b/tests/references/fire-open-gnome-xsession-35.png differ diff --git a/tests/references/fire-open-gnome-xsession-36.png b/tests/references/fire-open-gnome-xsession-36.png new file mode 100644 index 0000000..ade8bfa Binary files /dev/null and b/tests/references/fire-open-gnome-xsession-36.png differ diff --git a/tests/references/matrix-close-gnome-wayland-nested-34.png b/tests/references/matrix-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..a1b5672 Binary files /dev/null and b/tests/references/matrix-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/matrix-close-gnome-wayland-nested-35.png b/tests/references/matrix-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..85abebf Binary files /dev/null and b/tests/references/matrix-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/matrix-close-gnome-wayland-nested-36.png b/tests/references/matrix-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..6c7392a Binary files /dev/null and b/tests/references/matrix-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/matrix-close-gnome-xsession-34.png b/tests/references/matrix-close-gnome-xsession-34.png new file mode 100644 index 0000000..9ae6901 Binary files /dev/null and b/tests/references/matrix-close-gnome-xsession-34.png differ diff --git a/tests/references/matrix-close-gnome-xsession-35.png b/tests/references/matrix-close-gnome-xsession-35.png new file mode 100644 index 0000000..74ba79e Binary files /dev/null and b/tests/references/matrix-close-gnome-xsession-35.png differ diff --git a/tests/references/matrix-close-gnome-xsession-36.png b/tests/references/matrix-close-gnome-xsession-36.png new file mode 100644 index 0000000..02dbabf Binary files /dev/null and b/tests/references/matrix-close-gnome-xsession-36.png differ diff --git a/tests/references/matrix-open-gnome-wayland-nested-34.png b/tests/references/matrix-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..14df9ca Binary files /dev/null and b/tests/references/matrix-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/matrix-open-gnome-wayland-nested-35.png b/tests/references/matrix-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..201b487 Binary files /dev/null and b/tests/references/matrix-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/matrix-open-gnome-wayland-nested-36.png b/tests/references/matrix-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..58c8581 Binary files /dev/null and b/tests/references/matrix-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/matrix-open-gnome-xsession-34.png b/tests/references/matrix-open-gnome-xsession-34.png new file mode 100644 index 0000000..750f732 Binary files /dev/null and b/tests/references/matrix-open-gnome-xsession-34.png differ diff --git a/tests/references/matrix-open-gnome-xsession-35.png b/tests/references/matrix-open-gnome-xsession-35.png new file mode 100644 index 0000000..eb932e2 Binary files /dev/null and b/tests/references/matrix-open-gnome-xsession-35.png differ diff --git a/tests/references/matrix-open-gnome-xsession-36.png b/tests/references/matrix-open-gnome-xsession-36.png new file mode 100644 index 0000000..523a068 Binary files /dev/null and b/tests/references/matrix-open-gnome-xsession-36.png differ diff --git a/tests/references/preferences.png b/tests/references/preferences.png deleted file mode 100644 index b57a4bf..0000000 Binary files a/tests/references/preferences.png and /dev/null differ diff --git a/tests/references/trex-close-gnome-wayland-nested-34.png b/tests/references/trex-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..4beed8b Binary files /dev/null and b/tests/references/trex-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/trex-close-gnome-wayland-nested-35.png b/tests/references/trex-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..e8549c1 Binary files /dev/null and b/tests/references/trex-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/trex-close-gnome-wayland-nested-36.png b/tests/references/trex-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..6af9081 Binary files /dev/null and b/tests/references/trex-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/trex-close-gnome-xsession-34.png b/tests/references/trex-close-gnome-xsession-34.png new file mode 100644 index 0000000..fc8b2a2 Binary files /dev/null and b/tests/references/trex-close-gnome-xsession-34.png differ diff --git a/tests/references/trex-close-gnome-xsession-35.png b/tests/references/trex-close-gnome-xsession-35.png new file mode 100644 index 0000000..2a0f280 Binary files /dev/null and b/tests/references/trex-close-gnome-xsession-35.png differ diff --git a/tests/references/trex-close-gnome-xsession-36.png b/tests/references/trex-close-gnome-xsession-36.png new file mode 100644 index 0000000..52a6621 Binary files /dev/null and b/tests/references/trex-close-gnome-xsession-36.png differ diff --git a/tests/references/trex-open-gnome-wayland-nested-34.png b/tests/references/trex-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..4beed8b Binary files /dev/null and b/tests/references/trex-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/trex-open-gnome-wayland-nested-35.png b/tests/references/trex-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..e8549c1 Binary files /dev/null and b/tests/references/trex-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/trex-open-gnome-wayland-nested-36.png b/tests/references/trex-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..6af9081 Binary files /dev/null and b/tests/references/trex-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/trex-open-gnome-xsession-34.png b/tests/references/trex-open-gnome-xsession-34.png new file mode 100644 index 0000000..fc8b2a2 Binary files /dev/null and b/tests/references/trex-open-gnome-xsession-34.png differ diff --git a/tests/references/trex-open-gnome-xsession-35.png b/tests/references/trex-open-gnome-xsession-35.png new file mode 100644 index 0000000..2a0f280 Binary files /dev/null and b/tests/references/trex-open-gnome-xsession-35.png differ diff --git a/tests/references/trex-open-gnome-xsession-36.png b/tests/references/trex-open-gnome-xsession-36.png new file mode 100644 index 0000000..52a6621 Binary files /dev/null and b/tests/references/trex-open-gnome-xsession-36.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-32.png b/tests/references/tv-close-gnome-wayland-nested-32.png new file mode 100644 index 0000000..affa8bb Binary files /dev/null and b/tests/references/tv-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-33.png b/tests/references/tv-close-gnome-wayland-nested-33.png new file mode 100644 index 0000000..86b3bba Binary files /dev/null and b/tests/references/tv-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-34.png b/tests/references/tv-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..dbba5c5 Binary files /dev/null and b/tests/references/tv-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-35.png b/tests/references/tv-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..dbba5c5 Binary files /dev/null and b/tests/references/tv-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-36.png b/tests/references/tv-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..11334dc Binary files /dev/null and b/tests/references/tv-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/tv-close-gnome-xsession-32.png b/tests/references/tv-close-gnome-xsession-32.png new file mode 100644 index 0000000..affa8bb Binary files /dev/null and b/tests/references/tv-close-gnome-xsession-32.png differ diff --git a/tests/references/tv-close-gnome-xsession-33.png b/tests/references/tv-close-gnome-xsession-33.png new file mode 100644 index 0000000..86b3bba Binary files /dev/null and b/tests/references/tv-close-gnome-xsession-33.png differ diff --git a/tests/references/tv-close-gnome-xsession-34.png b/tests/references/tv-close-gnome-xsession-34.png new file mode 100644 index 0000000..146c0c7 Binary files /dev/null and b/tests/references/tv-close-gnome-xsession-34.png differ diff --git a/tests/references/tv-close-gnome-xsession-35.png b/tests/references/tv-close-gnome-xsession-35.png new file mode 100644 index 0000000..146c0c7 Binary files /dev/null and b/tests/references/tv-close-gnome-xsession-35.png differ diff --git a/tests/references/tv-close-gnome-xsession-36.png b/tests/references/tv-close-gnome-xsession-36.png new file mode 100644 index 0000000..a9daef2 Binary files /dev/null and b/tests/references/tv-close-gnome-xsession-36.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-32.png b/tests/references/tv-open-gnome-wayland-nested-32.png new file mode 100644 index 0000000..affa8bb Binary files /dev/null and b/tests/references/tv-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-33.png b/tests/references/tv-open-gnome-wayland-nested-33.png new file mode 100644 index 0000000..86b3bba Binary files /dev/null and b/tests/references/tv-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-34.png b/tests/references/tv-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..dbba5c5 Binary files /dev/null and b/tests/references/tv-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-35.png b/tests/references/tv-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..dbba5c5 Binary files /dev/null and b/tests/references/tv-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-36.png b/tests/references/tv-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..11334dc Binary files /dev/null and b/tests/references/tv-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/tv-open-gnome-xsession-32.png b/tests/references/tv-open-gnome-xsession-32.png new file mode 100644 index 0000000..affa8bb Binary files /dev/null and b/tests/references/tv-open-gnome-xsession-32.png differ diff --git a/tests/references/tv-open-gnome-xsession-33.png b/tests/references/tv-open-gnome-xsession-33.png new file mode 100644 index 0000000..86b3bba Binary files /dev/null and b/tests/references/tv-open-gnome-xsession-33.png differ diff --git a/tests/references/tv-open-gnome-xsession-34.png b/tests/references/tv-open-gnome-xsession-34.png new file mode 100644 index 0000000..146c0c7 Binary files /dev/null and b/tests/references/tv-open-gnome-xsession-34.png differ diff --git a/tests/references/tv-open-gnome-xsession-35.png b/tests/references/tv-open-gnome-xsession-35.png new file mode 100644 index 0000000..146c0c7 Binary files /dev/null and b/tests/references/tv-open-gnome-xsession-35.png differ diff --git a/tests/references/tv-open-gnome-xsession-36.png b/tests/references/tv-open-gnome-xsession-36.png new file mode 100644 index 0000000..a9daef2 Binary files /dev/null and b/tests/references/tv-open-gnome-xsession-36.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-32.png b/tests/references/wisps-close-gnome-wayland-nested-32.png new file mode 100644 index 0000000..5f8f9a3 Binary files /dev/null and b/tests/references/wisps-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-33.png b/tests/references/wisps-close-gnome-wayland-nested-33.png new file mode 100644 index 0000000..6ce4190 Binary files /dev/null and b/tests/references/wisps-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-34.png b/tests/references/wisps-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..c9b246c Binary files /dev/null and b/tests/references/wisps-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-35.png b/tests/references/wisps-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..c9b246c Binary files /dev/null and b/tests/references/wisps-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-36.png b/tests/references/wisps-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..f58a196 Binary files /dev/null and b/tests/references/wisps-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/wisps-close-gnome-xsession-32.png b/tests/references/wisps-close-gnome-xsession-32.png new file mode 100644 index 0000000..5f8f9a3 Binary files /dev/null and b/tests/references/wisps-close-gnome-xsession-32.png differ diff --git a/tests/references/wisps-close-gnome-xsession-33.png b/tests/references/wisps-close-gnome-xsession-33.png new file mode 100644 index 0000000..6ce4190 Binary files /dev/null and b/tests/references/wisps-close-gnome-xsession-33.png differ diff --git a/tests/references/wisps-close-gnome-xsession-34.png b/tests/references/wisps-close-gnome-xsession-34.png new file mode 100644 index 0000000..a2a5254 Binary files /dev/null and b/tests/references/wisps-close-gnome-xsession-34.png differ diff --git a/tests/references/wisps-close-gnome-xsession-35.png b/tests/references/wisps-close-gnome-xsession-35.png new file mode 100644 index 0000000..a2a5254 Binary files /dev/null and b/tests/references/wisps-close-gnome-xsession-35.png differ diff --git a/tests/references/wisps-close-gnome-xsession-36.png b/tests/references/wisps-close-gnome-xsession-36.png new file mode 100644 index 0000000..04ca5d4 Binary files /dev/null and b/tests/references/wisps-close-gnome-xsession-36.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-32.png b/tests/references/wisps-open-gnome-wayland-nested-32.png new file mode 100644 index 0000000..5f8f9a3 Binary files /dev/null and b/tests/references/wisps-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-33.png b/tests/references/wisps-open-gnome-wayland-nested-33.png new file mode 100644 index 0000000..6ce4190 Binary files /dev/null and b/tests/references/wisps-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-34.png b/tests/references/wisps-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..c9b246c Binary files /dev/null and b/tests/references/wisps-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-35.png b/tests/references/wisps-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..c9b246c Binary files /dev/null and b/tests/references/wisps-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-36.png b/tests/references/wisps-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..f58a196 Binary files /dev/null and b/tests/references/wisps-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/wisps-open-gnome-xsession-32.png b/tests/references/wisps-open-gnome-xsession-32.png new file mode 100644 index 0000000..5f8f9a3 Binary files /dev/null and b/tests/references/wisps-open-gnome-xsession-32.png differ diff --git a/tests/references/wisps-open-gnome-xsession-33.png b/tests/references/wisps-open-gnome-xsession-33.png new file mode 100644 index 0000000..6ce4190 Binary files /dev/null and b/tests/references/wisps-open-gnome-xsession-33.png differ diff --git a/tests/references/wisps-open-gnome-xsession-34.png b/tests/references/wisps-open-gnome-xsession-34.png new file mode 100644 index 0000000..a2a5254 Binary files /dev/null and b/tests/references/wisps-open-gnome-xsession-34.png differ diff --git a/tests/references/wisps-open-gnome-xsession-35.png b/tests/references/wisps-open-gnome-xsession-35.png new file mode 100644 index 0000000..a2a5254 Binary files /dev/null and b/tests/references/wisps-open-gnome-xsession-35.png differ diff --git a/tests/references/wisps-open-gnome-xsession-36.png b/tests/references/wisps-open-gnome-xsession-36.png new file mode 100644 index 0000000..04ca5d4 Binary files /dev/null and b/tests/references/wisps-open-gnome-xsession-36.png differ diff --git a/tests/run-test.sh b/tests/run-test.sh index 8d04204..0d35edc 100755 --- a/tests/run-test.sh +++ b/tests/run-test.sh @@ -81,7 +81,7 @@ do_in_pod() { fail() { echo "${1}" podman cp "${POD}:/opt/Xvfb_screen0" - | tar xf - --to-command 'convert xwd:- fail.png' - LOG=$(do_in_pod sudo journalctl | grep -C 5 "error\|gjs") + LOG=$(do_in_pod sudo journalctl) echo "${LOG}" > fail.log exit 1 } @@ -97,21 +97,6 @@ find_target() { fi } -# This searches the virtual screen of the container for a given target image (first -# parameter) and moves the mouse to the upper left corner of the best match. If the target -# image is not found, an error message (second paramter) is printed and the script exits -# via the fail() method above. -move_mouse_to_target() { - echo "Trying to move mouse to ${1}." - POS=$(do_in_pod find-target.sh "${1}") || true - if [[ -z "${POS}" ]]; then - fail "${2}" - fi - - # shellcheck disable=SC2086 - do_in_pod xdotool mousemove $POS -} - # This simulates the given keystroke in the container. Simply calling "xdotool key $1" # sometimes fails to be recognized. Maybe the default 12ms between key-down and key-up # are too short for xvfb... @@ -121,15 +106,30 @@ send_keystroke() { do_in_pod xdotool keyup "${1}" } -# This simulates a mouse click in the container. Simply calling "xdotool click $1" -# sometimes fails to be recognized. Maybe the default 12ms between button-down and -# button-up are too short for xvfb... -send_click() { - do_in_pod xdotool mousedown "${1}" - sleep 0.5 - do_in_pod xdotool mouseup "${1}" +# This can be used to set a gsettings key of the extension. +set_setting() { + do_in_pod gsettings --schemadir /home/gnomeshell/.local/share/gnome-shell/extensions/burn-my-windows@schneegans.github.com/schemas \ + set org.gnome.shell.extensions.burn-my-windows "${1}" "${2}" } +# This opens the extensions preferences dialog and captures two images: One during the +# window-open animation, and one during the window-close animation. +# The images are then compared to reference images. +test_effect() { + echo "Testing ${1} effect." + + set_setting "open-preview-effect" "${1}" + set_setting "close-preview-effect" "${1}" + + sleep 2 + do_in_pod gnome-extensions prefs "${EXTENSION}" + sleep 2 + find_target "references/${1}-open-${SESSION}-${FEDORA_VERSION}.png" "Failed to test ${1} window open effect!" + send_keystroke "Alt+F4" + sleep 2 + find_target "references/${1}-close-${SESSION}-${FEDORA_VERSION}.png" "Failed to test ${1} window close effect!" + sleep 2 +} # ----------------------------------------------------- wait for the container to start up @@ -143,7 +143,6 @@ echo "Installing extension." podman cp "tests/references" "${POD}:/home/gnomeshell/references" podman cp "${EXTENSION}.zip" "${POD}:/home/gnomeshell" do_in_pod gnome-extensions install "${EXTENSION}.zip" -do_in_pod gnome-extensions enable "${EXTENSION}" # ---------------------------------------------------------------------- start GNOME Shell @@ -159,22 +158,36 @@ echo "Starting $(do_in_pod gnome-shell --version)." do_in_pod systemctl --user start "${SESSION}@:99" sleep 10 +# Enable the extension. +do_in_pod gnome-extensions enable "${EXTENSION}" + # Starting with GNOME 40, the overview is the default mode. We close this here by hitting # the super key. if [[ "${FEDORA_VERSION}" -gt 33 ]]; then echo "Closing Overview." send_keystroke "super" - sleep 3 fi +# Wait until the extension is enabled and the overview closed. +sleep 3 # ---------------------------------------------------------------------- perform the tests -# First we open the preferences and check whether the window is shown on screen by -# searching for a small snippet of the preferences dialog. -echo "Opening Preferences." -do_in_pod gnome-extensions prefs "${EXTENSION}" -sleep 3 -find_target "references/preferences.png" "Failed to open preferences!" +# The test mode ensures that the animations are "frozen" and do not change in time. +echo "Entering test mode." +set_setting "test-mode" true +do_in_pod gsettings set org.gnome.mutter center-new-windows true + +test_effect "energize-a" +test_effect "energize-b" +test_effect "fire" +test_effect "tv" +test_effect "wisps" + +if [[ "${FEDORA_VERSION}" -gt 33 ]]; then + test_effect "trex" + test_effect "broken-glass" + test_effect "matrix" +fi echo "All tests executed successfully."