Skip to content

Commit 6ce7c66

Browse files
committed
substantial improvements to reliability
- substantial improvements to multi-monitor - new integration testing suite
1 parent 99f589e commit 6ce7c66

26 files changed

+4520
-457
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ smart-auto-move.dconf
44
AGENTS.md
55
CLAUDE.md
66
GEMINI.md
7+
/tmp

CONTRIBUTING.md

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -29,66 +29,6 @@ see commit 9edd9e3210a1541d5c2915943c7a2b238ce7a856 for an end-to-end example.
2929
1. upload the zip to extensions.gnome.org
3030
1. repeat as needed if a version is rejected
3131

32-
## manual tests
32+
## testing
3333

34-
- disable the extension
35-
- reset the dconf settings
36-
- enable the extension
37-
- open calculator, move, resize, close, reopen (should restore)
38-
- open extension settings
39-
- switch default sync to IGNORE
40-
- open calculator, move, close, reopen (should NOT restore)
41-
- add an app override for calculator
42-
- set calculator override sync mode to RESTORE
43-
- click spin button down to 0.10 threshold
44-
- open calculator, move, close, reopen (should restore)
45-
- open nautilus, move, close, reopen (should NOT restore)
46-
- add an app override for firefox
47-
- open three firefox windows with three different websites
48-
- tile one per workspace, menu -> quit, reopen (all should restore)
49-
- switch tabs on one of the windows, menu -> quit, reopen (all should restore)
50-
- add app override for terminal
51-
- open three terminals and move them to slightly different locations
52-
- close and reopen terminals in a random order and make sure they fill open slots
53-
54-
## archive
55-
56-
### calculator
57-
58-
- open calculator
59-
- move calculator position
60-
- resize calculator
61-
- close calculator
62-
- open calculator
63-
- quickly close calculator
64-
- open calculator
65-
66-
### files
67-
68-
- open Places => Home
69-
- open a second Places => Home
70-
- tile first window to the left
71-
- move second Home window
72-
- close first Home window
73-
- change second Home window to Downloads
74-
- close Downloads window
75-
- open Places -> Downloads
76-
- open Places -> Home
77-
- move Downloads to workspace 2
78-
- tile Downloads to the right
79-
80-
### firefox
81-
82-
- launch firefox
83-
- navigate to Wikipedia.org
84-
- open second window
85-
- navigate to Mozilla.org
86-
- move first window to workspace 2
87-
- tile first window to left
88-
- tile second window to right
89-
- firefox Menu -> Quit
90-
- launch firefox
91-
- open new tab in Mozilla window
92-
- navigate to Google.com
93-
- firefox Menu -> Quit
94-
- launch firefox
34+
see TESTING.md

ROADMAP.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
# ROADMAP
22

33
```
4-
[ ] support testing in a virtual machine or container
4+
[@] reusable core shared with window-control extension
5+
6+
[x] fix issue with infinitely bouncing windows
7+
[x] automated testing in a virtual machine or container
58
eg. https://schneegans.github.io/tutorials/2022/03/02/gnome-shell-extensions-ci-03
9+
[x] multi-monitor support
10+
611
[ ] incorporate useful features and fixes from popular fork
712
https://github.com/ChrisLauinger77/gnome-shell-extension-SmartAutoMoveNG
813
```

TESTING.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# TESTING
2+
3+
## bootstrap
4+
5+
should be run after code changes
6+
7+
- build the extension on host
8+
- install the extension on the guest
9+
- guest logout and wait for autologin
10+
11+
## cleanup
12+
13+
should be run between each test
14+
15+
- disable the extension
16+
- reset the dconf settings
17+
- enable the extension
18+
19+
## orchestration
20+
21+
window orchestration is done by /srv/window-control/windowbot.py
22+
23+
test configs for windowbot are in /srv/window-control/testdata/
24+
25+
some configs have long delays with title changes/etc. tests should be resilient to those.
26+
27+
## stories
28+
29+
## default settings, calculator restore
30+
31+
- open calculator, move, resize, close, reopen (should restore)
32+
33+
## sync mode ignore, override calculator restore
34+
35+
- set default sync mode to IGNORE
36+
- open calculator, move, close, reopen (should NOT restore)
37+
- add an app override for calculator (mode RESTORE, 0.7 threshold)
38+
- open calculator, move, close, reopen (should restore)
39+
- open nautilus, move, close, reopen (should NOT restore)
40+
41+
## workspace and tiling
42+
43+
- launch the "fasttitle" windowbot config
44+
- wait for the window titles to settle
45+
- move the windows to the workspace and tile as described by their titles
46+
- quit and restart the windowbot session with "fasttitle" (should restore)
47+
- quit and restart the windowbot session with "slowtitle" (should restore, with long delays)
48+
49+
## secondary monitors
50+
51+
- launch the "single" windowbot config
52+
- tile the window to the right on the primary monitor
53+
- enable the secondary monitor
54+
- move the window to the secondary monitor and tile to the left
55+
- disable the secondary monitor (should move to primary and tile right)
56+
- enable the secondary monitor (should move to secondary and tile left)
57+
- quit and restart the windowbot session with "single" (should restore to secondary, tile left)
58+
- quit the windowbot session
59+
- disable the secondary monitor
60+
- start the windowbot session with "single" (should restore to primary, tile right)

0 commit comments

Comments
 (0)