Testing the inspector backend's return values when invoking a protocol command in various ways.


== Running test suite: Protocol.BackendInvocationReturnValues
-- Running test case: ResolveCommandPromiseOnSuccess
PASS: A backend command should return a Promise when invoked without a callback.
PASS: A successful command invocation's promise should be resolved.

-- Running test case: RejectCommandPromiseWithInvalidArguments
ERROR: Protocol Error: Invalid type of argument 'expression' for command 'Runtime.evaluate' call. It must be 'string' but it is 'number'.
PASS: A backend command should return a Promise when invoked without a callback.
PASS: An invalid command invocation's promise should be rejected.

-- Running test case: RejectCommandPromiseWithMissingArguments
ERROR: Protocol Error: Invalid number of arguments for command 'Runtime.evaluate'.
PASS: A backend command should return a Promise when invoked without a callback.
PASS: An invalid command invocation's promise should be rejected.

-- Running test case: RejectCommandPromiseWithExtraArgumentThatIsNotCallback
ERROR: Protocol Error: Protocol Error: Optional callback argument for command 'Runtime.enable' call must be a function but its type is 'number'.
PASS: A backend command should return a Promise when invoked without a callback.
PASS: An invalid command invocation's promise should be rejected.

-- Running test case: ReturnNothingIfCallback
PASS: A backend command should not have a return value when invoked with a callback.

-- Running test case: InvokeCallbackWithResultOnSuccess
PASS: A backend command should not return anything when invoked with a callback.
PASS: A backend command should always invoke its callback asynchronously.
PASS: A successful command should invoke the callback with a 'null' first parameter.
PASS: A successful command should invoke the callback with one or more result parameters.

-- Running test case: InvokeCallbackWithErrorForInvalidArguments
ERROR: Protocol Error: Invalid type of argument 'expression' for command 'Runtime.evaluate' call. It must be 'string' but it is 'number'.
PASS: A backend command should not return anything when invoked with a callback.
PASS: A backend command should always invoke its callback asynchronously.
PASS: A failed command should invoke the callback with a string error message as its first parameter.
PASS: A failed command should invoke the callback with only an error parameter.

-- Running test case: InvokeCallbackWithErrorForMissingArguments
ERROR: Protocol Error: Invalid number of arguments for command 'Runtime.evaluate'.
PASS: A backend command should not return anything when invoked with a callback.
PASS: A backend command should always invoke its callback asynchronously.
PASS: A failed command should invoke the callback with a string error message as its first parameter.
PASS: A failed command should invoke the callback with only an error parameter.

