tests: use special seat

When running on different backends, we don't know what devices
the backend provides. Create new seat for tests that contains
everything what we need. This is also first step in adding
touch support for tests.

v2: do not add devices in wl_seat.name event. Collect first
    all wl_seats and then pick the one that we need and
    destroy the rest. The effect is the same, but this code
    is better understandable.

Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/tests/weston-test-client-helper.h b/tests/weston-test-client-helper.h
index 9be39d9..bd60f28 100644
--- a/tests/weston-test-client-helper.h
+++ b/tests/weston-test-client-helper.h
@@ -36,7 +36,14 @@
 	struct wl_compositor *wl_compositor;
 	struct wl_shm *wl_shm;
 	struct test *test;
+	/* the seat that is actually used for input events */
 	struct input *input;
+	/* server can have more wl_seats. We need keep them all until we
+	 * find the one that we need. After that, the others
+	 * will be destroyed, so this list will have the length of 1.
+	 * If some day in the future we will need the other seats,
+	 * we can just keep them here. */
+	struct wl_list inputs;
 	struct output *output;
 	struct surface *surface;
 	int has_argb;
@@ -63,6 +70,8 @@
 	struct pointer *pointer;
 	struct keyboard *keyboard;
 	char *seat_name;
+	enum wl_seat_capability caps;
+	struct wl_list link;
 };
 
 struct pointer {