Test that the methods throw INVALID_STATE_ERR when the media element has not loaded. canPlayType() never throws. EXPECTED (video.networkState == '0') OK EXPECTED (video.currentSrc == '') OK No 'src'. Verify that all methods except canPlayType() throw INVALID_STATE_ERR. TEST(video.webkitGenerateKeyRequest('webkit-org.w3.clearkey')) THROWS(DOMException.INVALID_STATE_ERR) OK TEST(video.webkitAddKey('webkit-org.w3.clearkey', key)) THROWS(DOMException.INVALID_STATE_ERR) OK TEST(video.webkitCancelKeyRequest('webkit-org.w3.clearkey')) THROWS(DOMException.INVALID_STATE_ERR) OK RUN(video.canPlayType('audio/wav', 'webkit-org.w3.clearkey')) 'src' has been set, but loading has not yet started. Verify that all methods except canPlayType() throw INVALID_STATE_ERR. EXPECTED (video.networkState == '3') OK EXPECTED (video.currentSrc == '') OK TEST(video.webkitGenerateKeyRequest('webkit-org.w3.clearkey')) THROWS(DOMException.INVALID_STATE_ERR) OK TEST(video.webkitAddKey('webkit-org.w3.clearkey', key)) THROWS(DOMException.INVALID_STATE_ERR) OK TEST(video.webkitCancelKeyRequest('webkit-org.w3.clearkey')) THROWS(DOMException.INVALID_STATE_ERR) OK RUN(video.canPlayType('audio/wav', 'webkit-org.w3.clearkey')) EVENT(loadstart) TEST(video.networkState == video.NETWORK_LOADING || video.networkState == video.NETWORK_IDLE) OK EXPECTED (video.currentSrc != '') OK Verify that none of the methods throw when load has started. RUN(video.webkitGenerateKeyRequest('webkit-org.w3.clearkey')) RUN(video.webkitAddKey('webkit-org.w3.clearkey', key)) RUN(video.webkitCancelKeyRequest('webkit-org.w3.clearkey')) RUN(video.canPlayType('audio/wav', 'webkit-org.w3.clearkey')) END OF TEST