Add bounds check tests for WebDriver pause action.

The pause action takes an unsigned integer as input, but it was
discovered in https://github.com/mozilla/geckodriver/issues/1355
that chromedriver accepts floating point values.

To achieve conformance in this area, this will test various allowed and
disallowed values so that the pause action's bounds are properly checked.

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1484157
gecko-commit: 51acbb8dc5013a729f91bb6127d7234be010904b
gecko-integration-branch: mozilla-inbound
gecko-reviewers: whimboo
diff --git a/webdriver/tests/actions/bounds.py b/webdriver/tests/actions/bounds.py
new file mode 100644
index 0000000..e218c85
--- /dev/null
+++ b/webdriver/tests/actions/bounds.py
@@ -0,0 +1,51 @@
+import pytest
+
+from tests.support.asserts import assert_error, assert_success
+
+
+def perform_actions(session, actions):
+    return session.transport.send(
+        "POST",
+        "/session/{session_id}/actions".format(session_id=session.session_id),
+        {"actions": actions})
+
+
+@pytest.mark.parametrize("action_type", ["none", "key", "pointer"])
+def test_pause_positive_integer(session, action_type):
+    for valid_duration in [0, 1]:
+        actions = [{
+            "type": action_type,
+            "id": "foobar",
+            "actions": [{
+                "type": "pause",
+                "duration": valid_duration
+            }]
+        }]
+        response = perform_actions(session, actions)
+        assert_success(response)
+
+    actions = [{
+        "type": action_type,
+        "id": "foobar",
+        "actions": [{
+            "type": "pause",
+            "duration": -1
+        }]
+    }]
+    response = perform_actions(session, actions)
+    assert_error(response, "invalid argument")
+
+
+@pytest.mark.parametrize("action_type", ["none", "key", "pointer"])
+def test_pause_invalid_types(session, action_type):
+    for invalid_type in [0.0, None, "foo", True, [], {}]:
+        actions = [{
+            "type": action_type,
+            "id": "foobar",
+            "actions": [{
+                "type": "pause",
+                "duration": invalid_type
+            }]
+        }]
+        response = perform_actions(session, actions)
+        assert_error(response, "invalid argument")