From 932b0b593ed3503da9004a4f1fb6b27a34dfb0df Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Mon, 1 Aug 2022 22:13:08 +1000 Subject: [PATCH] add integration test to ensure we don't run into issues with popup focus --- docs/Integration_Tests.md | 2 +- .../expected/repo/.git_keep/COMMIT_EDITMSG | 1 + .../expected/repo/.git_keep/FETCH_HEAD | 0 .../popupFocus/expected/repo/.git_keep/HEAD | 1 + .../popupFocus/expected/repo/.git_keep/config | 10 ++++++++++ .../expected/repo/.git_keep/description | 1 + .../popupFocus/expected/repo/.git_keep/index | Bin 0 -> 281 bytes .../expected/repo/.git_keep/info/exclude | 7 +++++++ .../expected/repo/.git_keep/logs/HEAD | 3 +++ .../repo/.git_keep/logs/refs/heads/master | 3 +++ .../04/78d727ea0ebf57ed9ca85acef9e60a324d86f0 | 3 +++ .../0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 | Bin 0 -> 52 bytes .../18/0cf8328022becee9aaa2577a8f84ea2b9f3827 | Bin 0 -> 21 bytes .../2b/173c861df433fa43ffad13f80c8b312c5c8bce | Bin 0 -> 103 bytes .../35/3cce986c61f361452f43522426c120b4ee9461 | 3 +++ .../6e/cdae79ff53548670039abee9008b6bb36cdf4f | 2 ++ .../a5/bce3fd2565d8f458555a0c6f42d0504a848bd5 | Bin 0 -> 21 bytes .../a7/341a59f0ddeef969e69fb6368266d22b0f2416 | Bin 0 -> 77 bytes .../df/6b0d2bcc76e6ec0fca20c227104a4f28bac41b | Bin 0 -> 21 bytes .../expected/repo/.git_keep/refs/heads/master | 1 + .../popupFocus/expected/repo/myfile1 | 1 + .../popupFocus/expected/repo/myfile2 | 1 + .../popupFocus/expected/repo/myfile3 | 1 + test/integration/popupFocus/recording.json | 1 + test/integration/popupFocus/setup.sh | 18 ++++++++++++++++++ test/integration/popupFocus/test.json | 1 + 26 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/COMMIT_EDITMSG create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/FETCH_HEAD create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/HEAD create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/config create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/description create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/index create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/info/exclude create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/logs/HEAD create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/logs/refs/heads/master create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/04/78d727ea0ebf57ed9ca85acef9e60a324d86f0 create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/35/3cce986c61f361452f43522426c120b4ee9461 create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/6e/cdae79ff53548670039abee9008b6bb36cdf4f create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5 create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/a7/341a59f0ddeef969e69fb6368266d22b0f2416 create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/objects/df/6b0d2bcc76e6ec0fca20c227104a4f28bac41b create mode 100644 test/integration/popupFocus/expected/repo/.git_keep/refs/heads/master create mode 100644 test/integration/popupFocus/expected/repo/myfile1 create mode 100644 test/integration/popupFocus/expected/repo/myfile2 create mode 100644 test/integration/popupFocus/expected/repo/myfile3 create mode 100644 test/integration/popupFocus/recording.json create mode 100644 test/integration/popupFocus/setup.sh create mode 100644 test/integration/popupFocus/test.json diff --git a/docs/Integration_Tests.md b/docs/Integration_Tests.md index 3532e2e93..2cbf8064a 100644 --- a/docs/Integration_Tests.md +++ b/docs/Integration_Tests.md @@ -7,7 +7,7 @@ Integration tests are located in `test/integration`. Each test will run a bash s An example of a `test.json` is: ``` -{ "description": "stage a file and commit the change", "speed": 20 } +{ "description": "Open a confirmation, then open a menu over that, then close the menu. Verify that the confirmation popup also closes automatically", "speed": 20 } ``` The `speed` key refers to the playback speed as a multiple of the original recording speed. So 20 means the test will run 20 times faster than the original recording speed. If a test fails for a given speed, it will drop the speed and re-test, until finally attempting the test at the original speed. If you omit the speed, it will default to 10. diff --git a/test/integration/popupFocus/expected/repo/.git_keep/COMMIT_EDITMSG b/test/integration/popupFocus/expected/repo/.git_keep/COMMIT_EDITMSG new file mode 100644 index 000000000..00d7bdd40 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/COMMIT_EDITMSG @@ -0,0 +1 @@ +WIP diff --git a/test/integration/popupFocus/expected/repo/.git_keep/FETCH_HEAD b/test/integration/popupFocus/expected/repo/.git_keep/FETCH_HEAD new file mode 100644 index 000000000..e69de29bb diff --git a/test/integration/popupFocus/expected/repo/.git_keep/HEAD b/test/integration/popupFocus/expected/repo/.git_keep/HEAD new file mode 100644 index 000000000..cb089cd89 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/test/integration/popupFocus/expected/repo/.git_keep/config b/test/integration/popupFocus/expected/repo/.git_keep/config new file mode 100644 index 000000000..8ae104545 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/config @@ -0,0 +1,10 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + ignorecase = true + precomposeunicode = true +[user] + email = CI@example.com + name = CI diff --git a/test/integration/popupFocus/expected/repo/.git_keep/description b/test/integration/popupFocus/expected/repo/.git_keep/description new file mode 100644 index 000000000..498b267a8 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/test/integration/popupFocus/expected/repo/.git_keep/index b/test/integration/popupFocus/expected/repo/.git_keep/index new file mode 100644 index 0000000000000000000000000000000000000000..d74d35efa5b8b45bfb51d1b04e0f8526e5d98551 GIT binary patch literal 281 zcmZ?q402{*U|<4b=A`F`?kO^CRfExt3=FKyM{l2JU}#*zz`*zws73^c*_Q5k{8u&g z#+QiDD4u+$3jtm&-B%gdb1Ty_b5ad~3PAdmlvU@!Xs9{Q(an+I`C-(cwC~)@Rg1!_ z`deOU&$m#AnPUVsN7*?q3}g<7hMMye-JJW`yxM2Vp1t8erEo}Hz{_7_*AZ!$ImSS9 zLV{dffs`bJv4R1Ywzy53>=)x-&i~g6|KRC1)QRanw>O}4C0}5M;n`ZZlbt8kH+oMl G{0IQfWnokR literal 0 HcmV?d00001 diff --git a/test/integration/popupFocus/expected/repo/.git_keep/info/exclude b/test/integration/popupFocus/expected/repo/.git_keep/info/exclude new file mode 100644 index 000000000..8e9f2071f --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/info/exclude @@ -0,0 +1,7 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ +.DS_Store diff --git a/test/integration/popupFocus/expected/repo/.git_keep/logs/HEAD b/test/integration/popupFocus/expected/repo/.git_keep/logs/HEAD new file mode 100644 index 000000000..03b354937 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/logs/HEAD @@ -0,0 +1,3 @@ +0000000000000000000000000000000000000000 353cce986c61f361452f43522426c120b4ee9461 CI 1659355870 +1000 commit (initial): myfile1 +353cce986c61f361452f43522426c120b4ee9461 6ecdae79ff53548670039abee9008b6bb36cdf4f CI 1659355870 +1000 commit: myfile2 +6ecdae79ff53548670039abee9008b6bb36cdf4f 0478d727ea0ebf57ed9ca85acef9e60a324d86f0 CI 1659355876 +1000 commit: WIP diff --git a/test/integration/popupFocus/expected/repo/.git_keep/logs/refs/heads/master b/test/integration/popupFocus/expected/repo/.git_keep/logs/refs/heads/master new file mode 100644 index 000000000..03b354937 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/logs/refs/heads/master @@ -0,0 +1,3 @@ +0000000000000000000000000000000000000000 353cce986c61f361452f43522426c120b4ee9461 CI 1659355870 +1000 commit (initial): myfile1 +353cce986c61f361452f43522426c120b4ee9461 6ecdae79ff53548670039abee9008b6bb36cdf4f CI 1659355870 +1000 commit: myfile2 +6ecdae79ff53548670039abee9008b6bb36cdf4f 0478d727ea0ebf57ed9ca85acef9e60a324d86f0 CI 1659355876 +1000 commit: WIP diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/04/78d727ea0ebf57ed9ca85acef9e60a324d86f0 b/test/integration/popupFocus/expected/repo/.git_keep/objects/04/78d727ea0ebf57ed9ca85acef9e60a324d86f0 new file mode 100644 index 000000000..1a59d8559 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/objects/04/78d727ea0ebf57ed9ca85acef9e60a324d86f0 @@ -0,0 +1,3 @@ +x +0E]+f/ȤӼ@D;w +Ɩ7pl`.C8zHy$ռX҈ ف]_] %$UGn> RE$!K!=&ca~ZE#08nZNMgRZ+ literal 0 HcmV?d00001 diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce b/test/integration/popupFocus/expected/repo/.git_keep/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce new file mode 100644 index 0000000000000000000000000000000000000000..0a734f98100d24e67455a3cfa8497adaccc7a422 GIT binary patch literal 103 zcmV-t0GR)H0V^p=O;s>7Fl8__FfcPQQOK=K%gjkNWLUcA@n6-{8($(qqj>V2E(CbB zbYDeLV#FZ9^TVh?Y2Ue*s}_Y<^|!pzo^PR!qQsctem1Z6nX+eZ_)jSuQWx;@*VuJL J8UTCqE3ZN5G4lWb literal 0 HcmV?d00001 diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/35/3cce986c61f361452f43522426c120b4ee9461 b/test/integration/popupFocus/expected/repo/.git_keep/objects/35/3cce986c61f361452f43522426c120b4ee9461 new file mode 100644 index 000000000..a3e9d66fe --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/objects/35/3cce986c61f361452f43522426c120b4ee9461 @@ -0,0 +1,3 @@ +xA +0@ѮsʌN&\yL`H +~XKY˭*1c  /'Lw=`9/=C7}ZF CowwBDskOn74], \ No newline at end of file diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/6e/cdae79ff53548670039abee9008b6bb36cdf4f b/test/integration/popupFocus/expected/repo/.git_keep/objects/6e/cdae79ff53548670039abee9008b6bb36cdf4f new file mode 100644 index 000000000..a23afd560 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/objects/6e/cdae79ff53548670039abee9008b6bb36cdf4f @@ -0,0 +1,2 @@ +xM +0@a9Ed~2퀈U,[J=ǷxyuiOm7#y6+*jeEf)d^SM{8baf.c00K^̓D.3QfrWey\+9> \ No newline at end of file diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5 b/test/integration/popupFocus/expected/repo/.git_keep/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5 new file mode 100644 index 0000000000000000000000000000000000000000..285df3e5fbab12262e28d85e78af8a31cd0024c1 GIT binary patch literal 21 ccmb`~^A08nuUMF0Q* literal 0 HcmV?d00001 diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/a7/341a59f0ddeef969e69fb6368266d22b0f2416 b/test/integration/popupFocus/expected/repo/.git_keep/objects/a7/341a59f0ddeef969e69fb6368266d22b0f2416 new file mode 100644 index 0000000000000000000000000000000000000000..96d2e71a6af75cdd27ac5d9628a27faecc40fb66 GIT binary patch literal 77 zcmV-T0J8sh0V^p=O;s>AU@$Z=Ff%bx$gNDv%tB=N-?^8o7KK;!x4hDxZ=ntVWIZ01*pecg literal 0 HcmV?d00001 diff --git a/test/integration/popupFocus/expected/repo/.git_keep/objects/df/6b0d2bcc76e6ec0fca20c227104a4f28bac41b b/test/integration/popupFocus/expected/repo/.git_keep/objects/df/6b0d2bcc76e6ec0fca20c227104a4f28bac41b new file mode 100644 index 0000000000000000000000000000000000000000..9b771fc2f6f41f91b00976b4ff3f8f9935f7931e GIT binary patch literal 21 ccmb>`CU&08otwO#lD@ literal 0 HcmV?d00001 diff --git a/test/integration/popupFocus/expected/repo/.git_keep/refs/heads/master b/test/integration/popupFocus/expected/repo/.git_keep/refs/heads/master new file mode 100644 index 000000000..6ffdf61da --- /dev/null +++ b/test/integration/popupFocus/expected/repo/.git_keep/refs/heads/master @@ -0,0 +1 @@ +0478d727ea0ebf57ed9ca85acef9e60a324d86f0 diff --git a/test/integration/popupFocus/expected/repo/myfile1 b/test/integration/popupFocus/expected/repo/myfile1 new file mode 100644 index 000000000..a5bce3fd2 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/myfile1 @@ -0,0 +1 @@ +test1 diff --git a/test/integration/popupFocus/expected/repo/myfile2 b/test/integration/popupFocus/expected/repo/myfile2 new file mode 100644 index 000000000..180cf8328 --- /dev/null +++ b/test/integration/popupFocus/expected/repo/myfile2 @@ -0,0 +1 @@ +test2 diff --git a/test/integration/popupFocus/expected/repo/myfile3 b/test/integration/popupFocus/expected/repo/myfile3 new file mode 100644 index 000000000..df6b0d2bc --- /dev/null +++ b/test/integration/popupFocus/expected/repo/myfile3 @@ -0,0 +1 @@ +test3 diff --git a/test/integration/popupFocus/recording.json b/test/integration/popupFocus/recording.json new file mode 100644 index 000000000..e7f4f9d53 --- /dev/null +++ b/test/integration/popupFocus/recording.json @@ -0,0 +1 @@ +{"KeyEvents":[{"Timestamp":607,"Mod":0,"Key":259,"Ch":0},{"Timestamp":745,"Mod":0,"Key":259,"Ch":0},{"Timestamp":1304,"Mod":0,"Key":256,"Ch":82},{"Timestamp":2087,"Mod":2,"Key":18,"Ch":18},{"Timestamp":2894,"Mod":0,"Key":27,"Ch":0},{"Timestamp":3553,"Mod":0,"Key":260,"Ch":0},{"Timestamp":3697,"Mod":0,"Key":260,"Ch":0},{"Timestamp":4064,"Mod":0,"Key":256,"Ch":32},{"Timestamp":4376,"Mod":0,"Key":256,"Ch":119},{"Timestamp":4745,"Mod":0,"Key":13,"Ch":13},{"Timestamp":5200,"Mod":0,"Key":256,"Ch":113}],"ResizeEvents":[{"Timestamp":0,"Width":238,"Height":61}]} \ No newline at end of file diff --git a/test/integration/popupFocus/setup.sh b/test/integration/popupFocus/setup.sh new file mode 100644 index 000000000..b22a9c241 --- /dev/null +++ b/test/integration/popupFocus/setup.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +cd $1 + +git init + +git config user.email "CI@example.com" +git config user.name "CI" + +echo test1 > myfile1 +git add . +git commit -am "myfile1" +echo test2 > myfile2 +git add . +git commit -am "myfile2" +echo test3 > myfile3 diff --git a/test/integration/popupFocus/test.json b/test/integration/popupFocus/test.json new file mode 100644 index 000000000..60bfe9319 --- /dev/null +++ b/test/integration/popupFocus/test.json @@ -0,0 +1 @@ +{ "description": "stage a file and commit the change", "speed": 15 }