Commit Graph

610 Commits

Author SHA1 Message Date
Michael Stapelberg 19f3f84d29 tests: add test for previous commit 2012-02-15 18:08:53 +00:00
Michael Stapelberg 6d0dcf06ef tests: make t/504-move-workspace-to-output consistent with the previous commit 2012-02-15 18:02:02 +00:00
Michael Stapelberg 974e70459d tests: add a test for the urgent= criteria 2012-02-14 22:47:40 +00:00
Michael Stapelberg 82247fd0ab Bugfix: Correctly handle missing ending double quotes (+test) (Thanks mxf) 2012-02-10 19:49:38 +00:00
Michael Stapelberg 2f8d3d3390 Bugfix: Properly handle workspace names with double quotes (+test) (Thanks kvapen) 2012-02-07 22:50:27 +00:00
Michael Stapelberg ed2bcc15e3 Merge branch 'master' into next 2012-02-07 17:42:58 -05:00
Michael Stapelberg 0fc459892e Bugfix: Properly split when the current container is alone within a stacked/tabbed con (+test) (Thanks aksr)
Fixes: #630
2012-02-07 17:42:35 -05:00
Michael Stapelberg 4fe974408d Merge branch 'master' into next 2012-02-07 17:41:36 -05:00
Michael Stapelberg 4f98bbf5ff Bugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks aksr)
The code wasn’t using con_attach and therefore didn’t obey workspace_layout.

Fixes: #631
2012-02-07 17:41:00 -05:00
Michael Stapelberg efa1cada29 tests: Make i3 create its temporary files in /tmp/i3-testsuite
This behavior can be avoided by passing dont_create_temp_dir => 1 to
launch_with_config (or activate_i3).

This commit fixes t/159-socketpaths.t being flaky on non-systemd computers.
2012-02-07 17:38:45 -05:00
Michael Stapelberg 8a57cb48c8 testcases: requires Test::More >= 0.94 (for subtests) 2012-01-29 18:03:03 +00:00
Michael Stapelberg d22458cde0 complete-run: make --valgrind, --strace, --coverage-testing work again 2012-01-27 21:36:40 +00:00
Michael Stapelberg 19dc92a9a5 new parser: correctly handle leading/trailing newlines (+test) (Thanks helgikrs) 2012-01-25 22:00:32 +00:00
Michael Stapelberg 318d4fdeef make in-place restarts use socket activation, too (for faster/less flaky tests) 2012-01-21 23:03:09 +00:00
Michael Stapelberg 3b7f4d428e Correctly restore focus after in-place restarts
Note: This change requires two in-place restarts when you are upgrading
in-place from an old version.

Fixes #611
2012-01-21 18:35:15 +00:00
Michael Stapelberg fc27c19761 Merge branch 'master' into next
Conflicts:
	testcases/t/005-floating.t
2012-01-21 14:22:29 +00:00
Michael Stapelberg cb4c9b9d27 Bugfix: Position floating windows exactly where their geometry specified (Thanks B-Con)
Fixes #619
2012-01-21 14:20:55 +00:00
Michael Stapelberg 45b4d71a0b handle the old bar color config syntax in a backwards-compatible way 2012-01-20 22:26:17 +00:00
Michael Stapelberg 31b7ec29fd Re-implement bar borders (by Angelo Haller)
This re-introduces borders around the workspace buttons in i3bar.
No additional pixels will be consumed (you will not lose any space for your
windows).
2012-01-20 21:36:50 +00:00
Michael Stapelberg a532f5ac39 Implement a new parser for commands. (+test)
On the rationale of using a custom parser instead of a lex/yacc one, see this
quote from src/commands_parser.c:
     We use a hand-written parser instead of lex/yacc because our commands are
     easy for humans, not for computers. Thus, it’s quite hard to specify a
     context-free grammar for the commands. A PEG grammar would be easier, but
     there’s downsides to every PEG parser generator I have come accross so far.

     This parser is basically a state machine which looks for literals or strings
     and can push either on a stack. After identifying a literal or string, it
     will either transition to the current state, to a different state, or call a
     function (like cmd_move()).

     Special care has been taken that error messages are useful and the code is
     well testable (when compiled with -DTEST_PARSER it will output to stdout
     instead of actually calling any function).

During the migration phase (I plan to completely switch to this parser before
4.2 will be released), the new parser will parse every command you send to
i3 and save the resulting call stack. Then, the old parser will parse your
input and actually execute the commands. Afterwards, both call stacks will be
compared and any differences will be logged.

The new parser works with 100% of the test suite and produces identical call
stacks.
2012-01-14 21:29:57 +00:00
Michael Stapelberg f81c89ac28 Refactor the code out of src/cmdparse.y to src/commands.c
This is the first step towards our new parser.
2012-01-14 16:59:52 +00:00
Michael Stapelberg 814695d8bb Implement 'move workspace to output <output>'
Fixes: #541
2012-01-10 22:16:50 +00:00
Michael Stapelberg a4a59a797f tests: use open_window to avoid motion notifies which in turn trigger endless loops
Using 'open' will not create an X11 window (while open_window does), so we will
get spurious motion notify events when switching focus, leading to endless loops.
2012-01-10 22:16:09 +00:00
Michael Stapelberg df9b338175 Introduce synonyms: 'move to workspace' and 'move container to workspace' and 'move window to workspace'
This makes the new 'move workspace to output' command much more clear
2012-01-10 22:16:09 +00:00
Michael Stapelberg 6585d289cf add testcase for workspace next_on_output/prev_on_output 2012-01-08 16:33:16 +00:00
Michael Stapelberg 6e4a86b7d1 tests: make focused_ws multi-monitor-safe, document it 2012-01-08 16:32:58 +00:00
Michael Stapelberg 07d07719f0 add testcase for 'focus output' 2012-01-08 11:59:24 +00:00
Michael Stapelberg 470ee00012 Merge branch 'master' into next 2012-01-07 18:50:46 +00:00
Michael Stapelberg d4238c778a Bugfix: Open new windows in the correct place when assignments match (+test) (Thanks Don) 2012-01-07 18:50:00 +00:00
Michael Stapelberg 6345124049 Merge branch 'master' into next
Conflicts:
	src/con.c
2012-01-07 18:21:12 +00:00
Michael Stapelberg f78caf8c58 Bugfix: Don’t lose focus on fullscreen windows when another window gets moved to that workspace (+test) (Thanks rami)
Fixes: #606
2012-01-07 18:18:36 +00:00
Michael Stapelberg 0e1b1dd984 Bugfix: Correctly handle 'move scratchpad' on workspace level (+test) (Thanks mseed)
Fixes: #597
2012-01-07 17:36:30 +00:00
Michael Stapelberg 3254188cda Bugfix: Show scratchpad on the correct output (+test)
Fixes: #596
2012-01-07 16:53:37 +00:00
Michael Stapelberg ed37a63942 tests: add scratchpad test 2012-01-05 21:41:23 +00:00
Michael Stapelberg 91499ed2c7 properly serialize floating/scratchpad state when restarting 2012-01-05 21:41:20 +00:00
Michael Stapelberg ec7ed75c01 tests: make t/143 actually verify floating windows are restored properly 2012-01-05 21:20:53 +00:00
Michael Stapelberg dd9743b272 tests: Implement multi-monitor tests using Xdmx 2011-12-26 20:48:57 +01:00
Michael Stapelberg 08986a1798 Implement scratchpad functionality (see userguide) 2011-12-21 23:15:32 +00:00
Michael Stapelberg 311b9e24df tests: implement restart testing (actual option still missing) 2011-12-21 23:15:30 +00:00
Michael Stapelberg 622b94f176 Merge branch 'master' into next 2011-12-20 18:44:26 +00:00
Michael Stapelberg d963018990 Bugfix: Don’t close workspace when there are still floating windows on it (Thanks noxxun) (+test)
Fixes: #595
2011-12-20 18:44:15 +00:00
Michael Stapelberg 1f2c9306a2 Merge branch 'master' into next
Conflicts:
	testcases/t/159-socketpaths.t
2011-12-18 18:02:08 +00:00
Michael Stapelberg c21172a6f6 Create a secure temp path instead of a predictable one (Thanks Han)
With this commit, i3 will now use either $XDG_RUNTIME_DIR/i3 (XDG_RUNTIME_DIR
is only writable by the user, so this is not a problem) or a secure temporary
location in /tmp, following the pattern /tmp/i3-<user>.XXXXXX
2011-12-18 17:59:31 +00:00
Michael Stapelberg 2ba09f5419 Merge branch 'master' into next 2011-12-18 15:19:09 +00:00
Michael Stapelberg ec28f3b982 Bugfix: Fix floating resize for floating split containers (+test)
Fixes: #588
2011-12-18 15:18:20 +00:00
Michael Stapelberg a930994dc9 Merge branch 'master' into next 2011-12-17 17:16:39 +00:00
Michael Stapelberg 75c57c4eef Bugfix: Ignore ConfigureRequests with out-of-bound coordinates (+test)
JDownloader seems to use these for its captcha popups when focus is not on the
same workspace, for some weird reason.
2011-12-17 17:15:52 +00:00
Michael Stapelberg db174234ce Merge branch 'master' into next
Conflicts:
	debian/changelog
2011-12-17 15:28:51 +00:00
Michael Stapelberg 1ff321bc3f Bugfix: Disallow focusing other windows when in fullscreen mode (Thanks aksr)
Fixes: #579
2011-12-17 15:28:17 +00:00
Michael Stapelberg ef224cdb98 Merge branch 'master' into next
Conflicts:
	testcases/t/173-get-marks.t
2011-12-17 14:22:57 +00:00
Michael Stapelberg b46ab649f5 Bugfix: Fix setting the same mark repeatedly on different windows (+test)
Fixes: #582
2011-12-17 14:22:23 +00:00
Michael Stapelberg 69b143e5ca complete-run: automatically display test output when running a single test 2011-12-17 11:20:32 +00:00
Michael Stapelberg 95508c3469 complete-run: fix uninitialized warning 2011-12-17 11:20:16 +00:00
Michael Stapelberg 81f4b6fc1a complete-run: don’t parallelize more than the number of tests 2011-12-17 11:19:31 +00:00
Michael Stapelberg da8d0baa74 tests: add test for previous commit 2011-12-17 11:18:43 +00:00
Michael Stapelberg 1c72e8b69e Make complete-run store the timings, schedule tests and print time estimate
Yay for self-optimizing software and time estimates
2011-12-16 22:00:41 +00:00
Michael Stapelberg 87d98a128f tests: disable SHM logging, we redirect anyways 2011-12-10 11:32:15 +00:00
Maik Fischer 9a7d7919a6 testcases: introduce TestWorker.pm
instead of executing a new perl interpreter (via TAP::Parser)
each time we start a testfile, fork a TestWorker for each display.

Each worker preloads i3test via 'require', blocking waits on its ipc
to get a new filename, forks itself upon arrival and 'do'es this
testscript.
2011-12-04 14:14:20 +01:00
Maik Fischer 55c474d864 testcases: move Xdummy cleanup code to StartXDummy 2011-12-04 14:14:20 +01:00
Maik Fischer 43b8b8356d complete-run: add cleanup sighandler 2011-12-04 14:14:20 +01:00
Maik Fischer 2d188bfc9b complete-run: reorder code to make code flow more clear 2011-12-04 14:14:20 +01:00
Maik Fischer 6a5ca32c5a complete-run: die if X11::XCB couldn’t connect to a display 2011-12-04 14:14:20 +01:00
Maik Fischer 8349190e09 testcases: always start i3 through i3test::launch_with_config
this will pave the way to just call BAIL_OUT and stop the currently
running testfile if i3 died for whatever reason.
2011-12-04 14:14:20 +01:00
Maik Fischer e8d2fbbac8 testcases: Makefile.PL: NAME =~ s/ /-/
since NAME is used to generate targets,
a space will lead to invalid syntax eg:
Makefile:547: warning: overriding commands for target `i3'
Makefile:536: warning: ignoring old commands for target `i3'
2011-12-04 14:14:20 +01:00
Maik Fischer 423b891995 StartXdummy.pm: make Xdummy startup a bit more robust 2011-12-04 14:14:20 +01:00
Michael Stapelberg 0f9fbcbd25 Merge branch 'master' into next 2011-11-29 22:37:11 +00:00
Michael Stapelberg 626e3efb48 Bugfix: Fix 'resize' command in nested containers (Thanks mseed)
Fixes: #559
2011-11-29 22:36:40 +00:00
Michael Stapelberg f5dce848b8 Merge branch 'master' into next 2011-11-26 22:18:01 +00:00
Michael Stapelberg 31acb91d90 Bugfix: Fix crash on '[class="i3bar"] focus' (+test) (Thanks f8l)
Fixes #575
2011-11-26 22:17:34 +00:00
Michael Stapelberg 5c59c0296c tests: add test for ticket #561 (floating window size when changing border) 2011-11-26 21:20:00 +00:00
Maik Fischer 475dc3c532 testcases: use open_window everywhere 2011-11-23 20:33:44 +00:00
Maik Fischer ec877f2ec4 i3test.pm: add before_map hook to open_window 2011-11-23 20:33:44 +00:00
Maik Fischer 9b8d9f7303 i3test.pm: open_(floating_)window: take arguments as hashref or key-value list 2011-11-23 20:33:44 +00:00
Maik Fischer c2229b905a testcases: replace sleep with sync_with_i3 where appropiate 2011-11-23 20:33:44 +00:00
Maik Fischer 33e9c29022 testcases: t/144-*: use open_window instead of launching urxvt 2011-11-23 20:33:44 +00:00
Maik Fischer 6bf13b413e testcases: t/116-*: reinvent ignore() from Test::Deep 2011-11-23 00:03:09 +00:00
Maik Fischer 2f36351ab3 testcases: Makefile.PL: fix tabbing 2011-11-23 00:03:06 +00:00
Maik Fischer 372b98d08e testcases: drop EV dependency 2011-11-23 00:03:00 +00:00
Maik Fischer 8d83697cc2 testcases: use Test::More is_deeply, don't depend on Test::Deep 2011-11-23 00:02:57 +00:00
Maik Fischer 3a9d94bba4 testcases: don't sync_with_i3() before $x->input_focus
since input_focus calls it anyways
2011-11-23 00:02:54 +00:00
Maik Fischer 0702f1fb7b testcases: drop sync_with_i3()s $x parameter, use global 2011-11-23 00:02:50 +00:00
Maik Fischer 293517fb2e testcases: drop open_floating_window()s $x parameter, use global 2011-11-23 00:02:47 +00:00
Maik Fischer fce7570f96 testcases: drop open_window()s $x parameter, use global one instead 2011-11-21 23:51:04 +00:00
Maik Fischer e9acd36ce4 t/005-floating.t: fix potentional race condition 2011-11-21 23:51:01 +00:00
Maik Fischer da403b3667 testcases: use $x in wait_for_(un)map change to wait_for_(un)map($win)
wait_for_unmap currently ignores its $window parameter, since
X11::XCB doesn't provide $event->{window} for unmap events yet.
2011-11-21 23:50:58 +00:00
Maik Fischer 65471a6b18 testcases: only export eq_deeply, cmp_deeply from Test::Deep 2011-11-21 23:50:55 +00:00
Maik Fischer ea2aba4319 testcases: undo 0f386a96 t/144-regress-floating-resize.t
wait_for_map can't be used, since we don't set structure_notify
on the urxvts windows
2011-11-21 23:50:52 +00:00
Maik Fischer db6de84d0b testcases: use global $x in wait_for_event, drop $x parameter 2011-11-21 23:50:48 +00:00
Maik Fischer 30ea33decb testcases: let i3test.pm export $x, adapt testcases 2011-11-21 23:50:43 +00:00
Maik Fischer 1b1d7941ec testcases: correctly enable lexical pragmata
eval 'package foo; use strict;' enables strict within eval, it does
not leak into the surrounding scope.
Also fix various warnings/compile errors found due to now enabled
strict and warnings.
2011-11-21 23:50:39 +00:00
Maik Fischer 0a65b770e8 i3test.pm: bail_out if injection of exported modules fails 2011-11-21 23:50:36 +00:00
Maik Fischer e72899efb6 testcases: move i3test::X11 from 170-force_focus_wrapping.t into i3test.pm 2011-11-21 23:50:33 +00:00
Maik Fischer 0f386a96e7 testcases: fix race conditions in various tests 2011-11-21 19:21:14 +00:00
Maik Fischer af793c9030 complete-run: wait for all jobs to be finished 2011-11-21 19:20:52 +00:00
Maik Fischer 4f2b1c3a66 testsuite: Makefile.PL: do not rename Makefile while running make clean 2011-11-21 19:14:46 +00:00
Michael Stapelberg 8a9b093bc3 tests: replace left-over move before/after commands (Thanks mxf) 2011-11-21 18:54:20 +00:00
Michael Stapelberg 2783aa9fc9 tests: add t/180-fd-leaks to ensure i3 does not leak fds on exec 2011-11-20 10:52:21 +00:00
Michael Stapelberg 3abd7ab073 complete-run: close all fds except for 0, 1, 2
running in a VIM subshell leads to one more fd, for example
2011-11-20 10:51:21 +00:00
Michael Stapelberg b0ee2dfd32 complete-run: close the old socket fd 2011-11-20 10:24:13 +00:00
Michael Stapelberg b6e859787e clarify comments about socket activation (Thanks mxf) 2011-11-16 23:14:57 +00:00
Michael Stapelberg 33ee4679e7 tests: store temp configs in /tmp/ 2011-11-16 21:41:45 +00:00
Michael Stapelberg 3665f3e755 tests: Bugfix: Fix socket activation (see comment) 2011-11-16 21:41:00 +00:00
Michael Stapelberg 77a9e4b18f complete-run: implement --strace, make --valgrind log to test-specific file 2011-11-15 23:30:17 +00:00
Michael Stapelberg 9cbf34ac14 lib/SocketActivation: Bugfix: remove old code which leaks the socket file descriptor to i3 2011-11-15 19:54:03 +00:00
Michael Stapelberg 60bfc3a600 Bugfix: Correctly handle --no-startup-id with quoted exec commands (Thanks aksr)
Parser changes shortly before a release. What could possibly go wrong.
2011-11-11 00:28:04 +00:00
Michael Stapelberg e73538a56f t/154-regress-multiple-dock: s/next v/focus right 2011-11-10 18:43:03 +00:00
Michael Stapelberg bebd2fceb6 Bugfix: Correctly return to initial state after prev/next/back_and_forth (Thanks Brian)
Fixes: #552
2011-11-10 18:42:24 +00:00
Michael Stapelberg 2c48280017 complete-run: remove Carp::Always, slipped in when debugging 2011-11-09 22:41:56 +00:00
Michael Stapelberg 316318c1fc complete-run: don’t print long logfile paths, they are useless by now anyway 2011-11-09 22:38:29 +00:00
Maik Fischer 7633aa67a1 complete-run: log verbose output, display statuslines instead 2011-11-09 23:00:10 +01:00
Michael Stapelberg 31b01798dd lib/SocketActivation: don’t make POSIX export everything (Thanks mxf) 2011-11-07 23:45:28 +00:00
Michael Stapelberg c8eb7b08ac lib/StartXDummy: use close STDOUT, STDERR instead of POSIX::close (Thanks mxf) 2011-11-07 23:39:45 +00:00
Michael Stapelberg bf12befd6d lib/StartXDummy.pm: document why we use -config /dev/null 2011-11-07 23:07:08 +00:00
Michael Stapelberg afc488021f complete-run.pl: automatically start Xdummy instances unless -d is specified
This makes running the testsuite incredibly easy:
    $ ./complete-run.pl
:)
2011-11-07 23:04:45 +00:00
Michael Stapelberg 8b887e8447 complete-run: Bugfix: return condvar when $dont_start is true 2011-11-07 22:38:06 +00:00
Michael Stapelberg 0615cb3595 complete-run.pl: implement --help 2011-11-07 21:21:51 +00:00
Michael Stapelberg fdf7b1706c complete-run: Bugfix: Don’t call recv inside a callback when cleanly exiting i3 2011-11-07 20:56:36 +00:00
Michael Stapelberg dbd6440432 complete-run: Use Carp::Always to get nice stacktraces in case of errors 2011-11-07 20:56:04 +00:00
Michael Stapelberg c75cc525f7 lib/SocketActivation: use single quotes (for consistency) 2011-11-07 20:54:33 +00:00
Michael Stapelberg 1c0d69d4e6 complete-run: implement --valgrind 2011-11-07 20:53:49 +00:00
Michael Stapelberg 389fdcf79f complete-run: pass outdir (not only logpath) to activate_i3() 2011-11-07 20:52:14 +00:00
Michael Stapelberg 50d14718f4 fix t/120-multiple-cmds: open a window before moving 2011-10-27 23:30:29 +01:00
Michael Stapelberg edfa9febae extend t/124-move.t to test move for floating containers 2011-10-27 21:46:01 +01:00
Michael Stapelberg ca0c2a46e4 t/124-move.t: re-activate test for useless move commands 2011-10-27 21:22:41 +01:00
Michael Stapelberg e710477a07 Bugfix: properly handle comments in colors {} blocks of bar config (+test) (Thanks fernandotcl) 2011-10-25 22:31:57 +01:00
Michael Stapelberg af6f8ca7c2 complete-run: clear the DESKTOP_STARTUP_ID environment variable before starting i3 2011-10-25 22:21:59 +01:00
Michael Stapelberg 91d589b176 tests: extend t/175-startup-notification to test the --no-startup-id flag 2011-10-25 22:21:37 +01:00
Fernando Tarlá Cardoso Lemos d490bae8a2 Close empty workspaces if they're not visible.
Previously, we'd only close an empty workspace when we moved away
from it. Now we also close it when the last client exits, as long
as that workspace is not visible anymore.
2011-10-24 00:12:14 +01:00
Michael Stapelberg 29f9f8c090 Fix tests: s/i3bar/bar {/ and hash prefix for color codes in GET_BAR_CONFIG 2011-10-23 21:51:43 +01:00
Michael Stapelberg 3a99c914e0 tests: default bar mode changed 2011-10-21 23:00:38 +01:00
Michael Stapelberg bf408c9a08 tests: depend on AnyEvent::I3 0.09 (for get_bar_config) 2011-10-20 20:31:44 +01:00
Michael Stapelberg ab2d96ba48 tests: modify $PATH so that it prefers the compiled versions of everything in ../ 2011-10-20 19:02:08 +01:00
Michael Stapelberg ad0f13a0a9 Clean bars before reloading the config (+test)
While the configuration gets updated in i3, the i3bar processes will not pick
up these changes. We have to think about a good way to do that.
2011-10-20 18:47:09 +01:00
Michael Stapelberg 15bface10d Create different IDs for each bar (+test) 2011-10-19 19:57:39 +01:00
Michael Stapelberg d9f3a31cb7 tests: add a test to check that bar configs are parsed correctly 2011-10-18 22:15:48 +01:00
Michael Stapelberg 82ec0169cb tests: add t/176-workspace-baf for the workspace back_and_forth feature 2011-10-17 23:34:29 +01:00
Maik Fischer fce422d99e i3test.pm: use strict; use warnings; and fix related bugs 2011-10-12 22:21:57 +01:00
Michael Stapelberg 27dadb4ad9 testcases/makefile: add modeline, add testsuite-* and latest to 'clean' target 2011-10-10 21:56:43 +01:00
Michael Stapelberg 71a3da1ef3 t/175-startup-notification: don’t wait for i3 mapping the window
It is on a different workspace and will therefore not get mapped.
Syncing is enough.
2011-10-10 16:00:34 +01:00
Michael Stapelberg 6ac098a45e support _NET_STARTUP_ID on the client leader window
(necessary for GIMP, geeqie, …)
2011-10-10 15:54:17 +01:00
Michael Stapelberg 7750382b89 test: set the _NET_STARTUP_ID before mapping the window 2011-10-10 15:54:17 +01:00
Michael Stapelberg 198f16ece9 add testcase for the startup notification protocol 2011-10-10 15:54:17 +01:00
Maik Fischer 19b13a0af5 testcases: add Makefile.PL to automatically install deps via CPAN 2011-10-08 20:58:37 +01:00
Michael Stapelberg ae1ab9eb27 tests: rename files (00x-*.t is basic stuff, >=100-*.t are tests using IPC) 2011-10-08 14:38:50 +01:00
Michael Stapelberg c48a092e24 testsuite: delete obsolete makefile 2011-10-08 14:30:47 +01:00
Michael Stapelberg 1056ecc885 complete-run: eliminate dependency on EV 2011-10-05 23:52:19 +01:00
Michael Stapelberg 27a38a3917 complete-run: explicitly state why we need to overwrite SIGCHLD 2011-10-05 23:29:58 +01:00
Michael Stapelberg 3136573a70 tests: eliminate List::MoreUtils 2011-10-05 23:21:36 +01:00
Michael Stapelberg b9224634dd tests: eliminate Try::Tiny 2011-10-05 23:21:23 +01:00
Michael Stapelberg 689f3b8cf7 tests: Eliminate IO::Scalar 2011-10-05 23:17:09 +01:00
Michael Stapelberg b9cd9132d0 tests: remove unused Proc::Background 2011-10-05 20:48:34 +01:00
Michael Stapelberg bd33c09845 tests: move i3test.pm from t/lib to lib/ 2011-10-04 23:39:36 +01:00
Michael Stapelberg 57484553e6 tests: use a lot higher timeouts
This makes the tests more robust on a machine which is loaded.
Also, it makes the tests run (significantly) longer if anything goes wrong.
2011-10-04 23:36:57 +01:00
Michael Stapelberg 359717970d tests: don’t overwrite $timeout, kill timer when done 2011-10-04 23:36:43 +01:00
Michael Stapelberg 4e1d50fa3a tests: Convert all testcases to use the new launch_with_config API
It now returns a pid directly, not a Proc::Background object.
2011-10-04 23:34:23 +01:00
Michael Stapelberg 8d9b4c3c04 tests: launch_with_config: use socket activation 2011-10-04 23:33:38 +01:00
Michael Stapelberg bf33c8d7c9 tests: SocketActivation: append to the logfile, more comments 2011-10-04 23:31:33 +01:00
Michael Stapelberg c8d42fbabe tests: SocketActivation: only close() and dup2() if fileno(socket) != 3 2011-10-04 23:31:06 +01:00
Michael Stapelberg 6c7c4d52d0 tests: Refactor the socket activation into lib/SocketActivation.pm 2011-10-04 23:30:30 +01:00
Michael Stapelberg a94ec5ee4e tests: re-order dependencies in complete-run, make clear which are shipped with Perl 2011-10-04 20:10:11 +01:00
Michael Stapelberg 53121c746c tests: remove unused dependency Proc::Background from complete-run 2011-10-04 20:05:12 +01:00
Michael Stapelberg aa65b721b8 tests: eliminate dependency on the DateTime module by using POSIX::strftime 2011-10-04 20:03:08 +01:00
Michael Stapelberg 20d6ae4110 tests: make complete-run use POSIX::close(3) instead of reserving a file descriptor when starting
This makes it possible to run complete-run.pl with a "tainted" environment in
which fd 3 (and possibly others) are already present.
2011-10-04 19:58:17 +01:00
Michael Stapelberg 32ea923721 add a test for the 'move workspace next/prev' command 2011-10-02 22:18:21 +01:00
Michael Stapelberg 683bfa58d5 tests: Use AnyEvent::I3’s get_marks (requires AE::I3 >=0.08)
We also don’t bother with timeouts anymore. It’s expected to run the tests with
a sufficiently recent version of i3. The tests will just hang if it doesn’t
work.
2011-09-26 19:36:27 +01:00
Michael Stapelberg 1675499f15 docs/testsuite: a few corrections by fernandotcl 2011-09-25 14:23:47 +01:00
Michael Stapelberg 1eb011aae1 tests: make sure to leave no tempfiles behind 2011-09-24 16:28:21 +01:00
Michael Stapelberg 10a9d2a439 tests: Bugfix: 11-goto.t: use mktemp for generating a random mark, not base64
The base64 string could contain / and + which is treated specially since we
implemented PCRE support :)
2011-09-24 15:56:43 +01:00
Michael Stapelberg 761dac5514 tests: lib/i3test: Use //= instead of unless exists $args{key} (Thanks mxf) 2011-09-24 15:44:42 +01:00
Michael Stapelberg 378611c11c tests: refactor t/58-wm_take_focus to use wait_for_event 2011-09-24 15:38:31 +01:00
Michael Stapelberg de5286da59 tests: lib/i3test: Remove open_standard_window, introduce open_window
open_window has a better API than open_standard_window. It uses named
parameters and supplies default values for everything you don’t specify. This
way, you can use every feature which X11::XCB::Window supports.
2011-09-24 15:11:37 +01:00
Michael Stapelberg c3eb9f6c45 tests: complete-run: remove debugging messages 2011-09-24 13:13:26 +01:00
Michael Stapelberg 1a438f12ed tests: complete-run: display time i3 took for starting up 2011-09-24 13:13:09 +01:00
Michael Stapelberg e244a75801 tests: complete_run: directly use X11::XCB instead of ::Connection
This saves about 0.5s wallclock time due to not starting up Moose/Mouse.
This is worthwhile when you develop a new feature and you are often invoking
complete_run for one specific test.
2011-09-24 13:09:20 +01:00
Michael Stapelberg 4da5b7e784 tests: use wait_for_{map,unmap} to eliminate more sleep()s 2011-09-24 13:08:02 +01:00
Michael Stapelberg 4821b13cae tests: lib/i3test: provide wait_for_map and wait_for_unmap
These functions should be used instead of calling wait_for_event directly when
waiting for MAP_NOTIFY or UNMAP_NOTIFY
2011-09-24 13:07:05 +01:00
Michael Stapelberg 38a9eabff1 tests: implement sync_with_i3 and use it instead of sleep()
Also use open_standard_window() in a few more places where appropriate
2011-09-24 11:15:08 +01:00
Michael Stapelberg 3167e9ad2d lib/i3test.pm: reformat exports list 2011-09-22 23:13:13 +01:00
Michael Stapelberg 83560c85d8 lib/i3test.pm: Don’t sleep(0.25), but wait until the window was mapped
This makes it faster and less racey
2011-09-22 23:13:12 +01:00
Michael Stapelberg 5542af316f t/65-for_window: add tests for window_role 2011-09-18 16:05:54 +01:00
Michael Stapelberg 99168a84a9 tests: also make launch_with_config() log to LOGPATH 2011-09-18 15:35:04 +01:00
Michael Stapelberg c8c95030ad tests: extend t/35-floating-focus to use focus left/right on floating windows 2011-09-17 19:29:23 +01:00
Michael Stapelberg 7a38d8ac56 Merge branch 'master' into next 2011-09-17 14:13:05 +01:00
Michael Stapelberg 7a43af04af Tests: fix floating size, add a test to check floating size when starting in tiling 2011-09-17 14:12:16 +01:00
Michael Stapelberg 717ae819c5 Merge branch 'master' into next 2011-09-11 22:52:44 +01:00
Michael Stapelberg 2a215fd7e2 Bugfix: Ignore for_window commands with empty (invalid) criteria (+test) (Thanks aksr) 2011-09-11 22:52:33 +01:00
Michael Stapelberg d82698efa7 make the old assign syntax trigger an i3-nagbar warning (it’s deprecated), adjust test 2011-09-11 22:01:36 +01:00
Michael Stapelberg b3e1fb1f3b Make the old 'assign' case-insensitive again (+test) (Thanks aksr) 2011-09-11 21:16:45 +01:00
Michael Stapelberg c1c1730516 pcre: enable UCP, UTF-8 (if available), extend t/19-match 2011-09-11 11:40:51 +01:00
Michael Stapelberg 8e04867e51 extend t/19-match to also test regular expressions 2011-09-10 23:52:39 +01:00
Michael Stapelberg bf4d166330 extend t/17-workspace.t to check if the numbers are assigned correctly 2011-09-05 22:24:28 +02:00
Michael Stapelberg f0a0236b7b Merge branch 'master' into next 2011-08-28 17:02:19 +02:00
Michael Stapelberg 96b219f27b migrate-config: use \s, be a bit more whitespace tolerant (+test) (Thanks sbedivere)
Fixes: #457
2011-08-28 17:01:59 +02:00
Michael Stapelberg 16188af8bf Merge branch 'master' into next 2011-08-28 15:47:35 +02:00
Michael Stapelberg 0b0a2dad51 t/66-assign: check if i3 crashes when assigning a dock window to floating 2011-08-28 15:43:51 +02:00
Michael Stapelberg 8114ecda47 Merge branch 'master' into next 2011-08-27 13:47:57 +02:00
Michael Stapelberg e97a7e34f7 Bugfix: Re-implement reconfiguring height of dock windows (+test) (Thanks thomasba) 2011-08-27 13:47:10 +02:00
Michael Stapelberg 6c42a179ec Merge branch 'master' into next 2011-08-27 13:03:20 +02:00
Michael Stapelberg 4c01dbd726 Bugfix: Don’t always focus floating windows (fixes focus stealing with assignments) (+test) (Thanks aksr) 2011-08-27 13:02:44 +02:00
Michael Stapelberg ff85023b08 Merge branch 'master' into next 2011-08-24 15:14:53 +02:00
Michael Stapelberg 0d35feb71b Bugfix: Make the 'resize' command work inside tabbed/stacked cons (+test) (Thanks sbedivere)
Fixes #461
2011-08-24 15:14:04 +02:00
Michael Stapelberg 642a745004 Merge branch 'master' into next 2011-08-24 00:57:36 +02:00
Michael Stapelberg b8a656bca7 Add test for the 'focus mode_toggle' issue (#487) 2011-08-24 00:57:25 +02:00
Michael Stapelberg 22e30061f3 Merge branch 'master' into next 2011-08-17 16:37:09 +02:00
Michael Stapelberg f172359ba5 Bugfix: Don’t change focus when assigned windows start on invisible workspaces (+test) (Thanks ioflag)
Fixes #468
2011-08-17 16:36:19 +02:00
Michael Stapelberg 3af7692a92 Merge branch 'tests-optimize' into next 2011-08-10 15:57:28 +02:00
Michael Stapelberg 5524785877 testsuite: eliminate sleep, wait until i3 replies via IPC 2011-08-10 15:56:39 +02:00
Michael Stapelberg f8d834c62d Merge branch 'master' into next 2011-08-09 09:47:10 +02:00
Michael Stapelberg 98cc37e223 swap up/down, also modify the testcase 2011-08-09 09:46:02 +02:00
Michael Stapelberg 74687fa97c tests: add t/74-border-config which checks new_window and new_float 2011-08-09 09:29:59 +02:00
Michael Stapelberg dab3a0b85a tests: add testcase for the GET_MARKS ipc request 2011-08-09 08:19:48 +02:00
Michael Stapelberg 51119c75c1 extend t/65-for_window to check for the 'instance' criterion 2011-08-04 20:11:01 +02:00
Michael Stapelberg 3ef7e3cee4 t/41-resize: also verify resize for floating windows 2011-08-03 14:48:33 +02:00
Michael Stapelberg dcba8024de also handle quoted workspace names, extend t/72 for that 2011-08-03 03:33:12 +02:00
Michael Stapelberg 72d2b2c9bd add testcase to check if i3 starts on the first named workspace (ticket #449) 2011-08-03 02:56:24 +02:00
Michael Stapelberg 003f7043c5 t/70-force-focus-wrapping: use launch_with_config 2011-08-03 02:12:29 +02:00
Michael Stapelberg 7956289c2b t/67-workspace_layout: use launch_with_config 2011-08-03 02:04:52 +02:00
Michael Stapelberg 8734534b5c t/66-assign: use launch_with_config 2011-08-03 02:03:26 +02:00
Michael Stapelberg 506d8797b2 tests: implement i3test::launch_with_config, use it in t/65-for_window 2011-08-03 00:03:13 +02:00
Michael Stapelberg b57e8570c9 t/65-for_window: add a testcase for multiple criteria 2011-08-02 19:46:10 +02:00
Michael Stapelberg 56499d8374 tests: make t/65-for-window.t use separate i3 instances 2011-08-02 19:21:09 +02:00
Michael Stapelberg 3204caa98d i3-migrate-config-to-v4: drop the .pl suffix
As lintian (a Debian package checker) mentions, it is more clever to install it
without the extension, since the implementation language might change.
2011-07-31 23:11:05 +02:00
Michael Stapelberg eea804cd94 migrate-config: convert old 'with container' commands to 'focus parent; $command' (+test) (Thanks Marcus) 2011-07-27 14:36:22 +02:00
Michael Stapelberg 2b940296a8 tests: t/17-workspace.t: keep workspace 1 open
When not running i3 in a terminal from workspace 1, this would fail otherwise
2011-07-27 14:35:40 +02:00
Michael Stapelberg 26c1a463db tests: keep an X11 connection open to every display, fixes races
Otherwise, i3 is the only client and thus the X server shuts down after i3
disconnects. Xdummy restarts an X server, but that takes some time and
therefore sometimes the next testcase was unable to connect.
2011-07-27 14:34:35 +02:00
Michael Stapelberg 44be907197 add Xdummy script to start a headless X11 server 2011-07-25 15:37:46 +02:00
Michael Stapelberg 4dde5bb863 testsuite: allow parallel runs. decreases the test time by 60% when using 4 displays 2011-07-25 15:37:13 +02:00
Michael Stapelberg 49ea805905 tests: get the socket path from the X11 atom I3_SOCKET_PATH
The hard-coded socket paths are not useful when running the test suite in
parallel.
2011-07-25 13:35:56 +02:00
Michael Stapelberg 34eb9b2664 ipc: make 'focused' a bool 2011-07-24 15:00:09 +02:00
Michael Stapelberg b09bb0fc2a ipc: make 'urgent' a bool 2011-07-24 14:54:30 +02:00
Michael Stapelberg 36fde6dbe1 ipc: send 'percent': null when percent is not relevant for the container 2011-07-24 14:47:28 +02:00
Michael Stapelberg feaa161d2c testcases: explicitly mark the (short) config files as v4
i3 won’t call i3-migrate-config and thus won’t add a call to i3bar this way.
It’s not necessary and can interfere with some tests sometimes.
2011-07-15 01:37:54 +02:00
Michael Stapelberg e117a8a77f migrate-config: mode foo → mode "foo" (+test) (Thanks cradle) 2011-07-15 00:22:26 +02:00
Michael Stapelberg 2d71102796 Bugfix: Switch to appropriate workspace when using 'focus' (+test) (Thanks rogutes)
Fixes #432
2011-07-14 23:45:36 +02:00
Michael Stapelberg 26d63fffc2 testcases: fix config-migrate test case after latest change 2011-07-14 23:07:10 +02:00
Michael Stapelberg b63a559c28 migrate-config: also migrate border toggle (bt) (Thanks woddf2) 2011-07-09 01:02:13 +02:00
Michael Stapelberg 0fe564d122 tests: t/19-match needs a little delay 2011-07-09 01:01:52 +02:00
Michael Stapelberg 0add563448 Bugfix: multiple criteria should use a logical AND (+test) (Thanks f8l) 2011-07-08 00:21:29 +02:00
Michael Stapelberg 3e24b7170f migrate-config: Bugfix: 'borderless' has to be 'none' 2011-07-06 20:21:39 +02:00
Michael Stapelberg 03aa95813e migrate-config: also handle named workspaces correctly when their names come after the bindings (Thanks xpt) 2011-07-06 17:56:09 +02:00
Michael Stapelberg 95ee21dc3b migrate-config: also leave client.background lines unchanged (Thanks cloud) 2011-07-06 17:51:32 +02:00
Michael Stapelberg a2f297bd39 Add script to migrate a v3 config to v4 (tree). Please test this!
Run ./i3-migrate-config-to-v4.pl < ~/.i3/config > /tmp/i3.config
and see if /tmp/i3.config is fine (especially check the comments
starting with XXX, they are inserted by the script).
2011-07-06 13:56:58 +02:00
Michael Stapelberg c408fef021 Implement 'focus floating', 'focus tiling' and 'focus mode_toggle' (+test +docs) 2011-07-04 17:09:52 +02:00
Michael Stapelberg 23d4917e43 Bugfix: Correctly revert floating focus when killing the last floating window (+test) 2011-07-01 01:10:43 +02:00
Michael Stapelberg 9611e46eb6 Bugfix: testcase was still using 'mode floating' instead of 'floating enable' 2011-07-01 00:37:30 +02:00
Michael Stapelberg e5c811248f Bugfix: Fix floating assignments, extend test for the assign command (Thanks Tucos) 2011-06-13 17:42:59 +02:00
Michael Stapelberg d641e1da3b Don’t force wrapping when focusing in a direction would work (+test)
Think of the following layout:

 -------------
 | tab |     |
 | con | win |
 |     |     |
 -------------

The tabbed container on the left has two children. Assume you have focused the
second/right child in the tabbed container. i3 used to focus the first/left
container of the tabbed container when using 'focus right' (it wrapped focus).

With this commit, the default behaviour is to instead focus the window on the
right of the screen.

The intention is to make focus switching more intuitive, especially with tabbed
containers supporting 'focus left'/'focus right' in tree. You should end up
using less 'focus parent' :).

You can force the old behaviour with 'force_focus_wrapping true' in your
config.

Code coverage is 62.5% with this commit.
2011-06-12 12:56:50 +02:00
Michael Stapelberg bef25d72aa Implement 'border toggle' (+test) 2011-06-10 16:15:52 +02:00
Michael Stapelberg 60ae26c19d Implement 'workspace next/prev' (+test) 2011-06-10 16:03:59 +02:00
Michael Stapelberg bd49c80d5f CONFIG BREAK: rename 'mode floating/tiling' to 'floating enable/disable'
The three different variants now:
   floating enable
   floating disable
   floating toggle
2011-06-10 02:06:47 +02:00