
FAIL setRemoteDescription() on offer with a=identity should establish peerIdentity pc1.setIdentityProvider is not a function. (In 'pc1.setIdentityProvider(idpHost, {
      protocol: 'mock-idp.js',
      usernameHint: `alice@${idpDomain}`
    })', 'pc1.setIdentityProvider' is undefined)
FAIL setRemoteDescription() on offer with a=identity that resolve to value different from target peer identity should reject with InvalidModificationError pc1.setIdentityProvider is not a function. (In 'pc1.setIdentityProvider(idpHost, {
      protocol: 'mock-idp.js',
      usernameHint: `alice@${idpDomain}`
    })', 'pc1.setIdentityProvider' is undefined)
FAIL setRemoteDescription() with peerIdentity set and with IdP proxy that return validationAssertion with mismatch contents should reject with OperationError undefined is not a function (near '...pc1.setIdentityProvider...')
FAIL setRemoteDescription() and peerIdentity should reject with OperationError if IdP return validated identity that is different from its own domain pc1.setIdentityProvider is not a function. (In 'pc1.setIdentityProvider(idpHost1, {
      protocol: 'mock-idp.js',
      usernameHint: `alice@${idpDomain2}`
    })', 'pc1.setIdentityProvider' is undefined)
FAIL When IdP throws error and pc has target peer identity, setRemoteDescription() and peerIdentity rejected with RTCError('idp-execution-error') undefined is not a function (near '...pc1.setIdentityProvider...')
FAIL IdP failure with no target peer identity should have following setRemoteDescription() succeed and replace pc.peerIdentity with a new promise pc1.setIdentityProvider is not a function. (In 'pc1.setIdentityProvider(idpHost, {
      protocol: 'mock-idp.js?validatorAction=throw-error',
      usernameHint: `alice@${idpDomain}`
    })', 'pc1.setIdentityProvider' is undefined)

