"use strict"; describe("chrome", () => { it("should exist", () => { expect(chrome).toBeDefined(); expect(chrome.cast).toBeDefined(); expect(chrome.cast.media).toBeDefined(); }); describe("chrome.cast", () => { it("should have all api methods", () => { expect(chrome.cast.addReceiverActionListener).toBeDefined(); expect(chrome.cast.initialize).toBeDefined(); expect(chrome.cast.logMessage).toBeDefined(); expect(chrome.cast.precache).toBeDefined(); expect(chrome.cast.removeReceiverActionListener).toBeDefined(); expect(chrome.cast.requestSession).toBeDefined(); expect(chrome.cast.requestSessionById).toBeDefined(); expect(chrome.cast.setCustomReceivers).toBeDefined(); expect(chrome.cast.setPageContext).toBeDefined(); expect(chrome.cast.setReceiverDisplayStatus).toBeDefined(); expect(chrome.cast.unescape).toBeDefined(); }); it("should not have private api methods", () => { expect(chrome.cast._requestSession).toBeUndefined(); }); it("should have all api classes", () => { expect(chrome.cast.ApiConfig).toBeDefined(); expect(chrome.cast.DialRequest).toBeDefined(); expect(chrome.cast.Error).toBeDefined(); expect(chrome.cast.Image).toBeDefined(); expect(chrome.cast.Receiver).toBeDefined(); expect(chrome.cast.ReceiverDisplayStatus).toBeDefined(); expect(chrome.cast.SenderApplication).toBeDefined(); expect(chrome.cast.Session).toBeDefined(); expect(chrome.cast.SessionRequest).toBeDefined(); expect(chrome.cast.Timeout).toBeDefined(); expect(chrome.cast.Volume).toBeDefined(); }); it("should have all api enums", () => { expect(chrome.cast.AutoJoinPolicy).toEqual(jasmine.objectContaining({ CUSTOM_CONTROLLER_SCOPED: "custom_controller_scoped" , TAB_AND_ORIGIN_SCOPED: "tab_and_origin_scoped" , ORIGIN_SCOPED: "origin_scoped" , PAGE_SCOPED: "page_scoped" })); expect(chrome.cast.Capability).toEqual(jasmine.objectContaining({ VIDEO_OUT: "video_out" , AUDIO_OUT: "audio_out" , VIDEO_IN: "video_in" , AUDIO_IN: "audio_in" , MULTIZONE_GROUP: "multizone_group" })); expect(chrome.cast.DefaultActionPolicy).toEqual(jasmine.objectContaining({ CREATE_SESSION: "create_session" , CAST_THIS_TAB: "cast_this_tab" })); expect(chrome.cast.DialAppState).toEqual(jasmine.objectContaining({ RUNNING: "running" , STOPPED: "stopped" , ERROR: "error" })); expect(chrome.cast.ErrorCode).toEqual(jasmine.objectContaining({ CANCEL: "cancel" , TIMEOUT: "timeout" , API_NOT_INITIALIZED: "api_not_initialized" , INVALID_PARAMETER: "invalid_parameter" , EXTENSION_NOT_COMPATIBLE: "extension_not_compatible" , EXTENSION_MISSING: "extension_missing" , RECEIVER_UNAVAILABLE: "receiver_unavailable" , SESSION_ERROR: "session_error" , CHANNEL_ERROR: "channel_error" , LOAD_MEDIA_FAILED: "load_media_failed" })); expect(chrome.cast.ReceiverAction).toEqual(jasmine.objectContaining({ CAST: "cast" , STOP: "stop" })); expect(chrome.cast.ReceiverAvailability).toEqual(jasmine.objectContaining({ AVAILABLE: "available" , UNAVAILABLE: "unavailable" })); expect(chrome.cast.ReceiverType).toEqual(jasmine.objectContaining({ CAST: "cast" , DIAL: "dial" , HANGOUT: "hangout" , CUSTOM: "custom" })); expect(chrome.cast.SenderPlatform).toEqual(jasmine.objectContaining({ CHROME: "chrome" , IOS: "ios" , ANDROID: "android" })); expect(chrome.cast.SessionStatus).toEqual(jasmine.objectContaining({ CONNECTED: "connected" , DISCONNECTED: "disconnected" , STOPPED: "stopped" })); expect(chrome.cast.VolumeControlType).toEqual(jasmine.objectContaining({ ATTENUATION: "attenuation" , FIXED: "fixed" , MASTER: "master" })); }); }); describe("chrome.cast.media", () => { it ("should have all api classes", () => { expect(chrome.cast.media.EditTracksInfoRequest).toBeDefined(); expect(chrome.cast.media.GenericMediaMetadata).toBeDefined(); expect(chrome.cast.media.GetStatusRequest).toBeDefined(); expect(chrome.cast.media.LoadRequest).toBeDefined(); expect(chrome.cast.media.Media).toBeDefined(); expect(chrome.cast.media.MediaInfo).toBeDefined(); expect(chrome.cast.media.MovieMediaMetadata).toBeDefined(); expect(chrome.cast.media.MusicTrackMediaMetadata).toBeDefined(); expect(chrome.cast.media.PauseRequest).toBeDefined(); expect(chrome.cast.media.PhotoMediaMetadata).toBeDefined(); expect(chrome.cast.media.PlayRequest).toBeDefined(); expect(chrome.cast.media.QueueInsertItemsRequest).toBeDefined(); expect(chrome.cast.media.QueueItem).toBeDefined(); expect(chrome.cast.media.QueueLoadRequest).toBeDefined(); expect(chrome.cast.media.QueueRemoveItemsRequest).toBeDefined(); expect(chrome.cast.media.QueueReorderItemsRequest).toBeDefined(); expect(chrome.cast.media.QueueUpdateItemsRequest).toBeDefined(); expect(chrome.cast.media.SeekRequest).toBeDefined(); expect(chrome.cast.media.StopRequest).toBeDefined(); expect(chrome.cast.media.TextTrackStyle).toBeDefined(); expect(chrome.cast.media.Track).toBeDefined(); expect(chrome.cast.media.TvShowMediaMetadata).toBeDefined(); expect(chrome.cast.media.VolumeRequest).toBeDefined(); }); it ("should have all api enums", () => { expect(chrome.cast.media.IdleReason).toEqual(jasmine.objectContaining({ CANCELLED: "CANCELLED" , INTERRUPTED: "INTERRUPTED" , FINISHED: "FINISHED" , ERROR: "ERROR" })); expect(chrome.cast.media.MediaCommand).toEqual(jasmine.objectContaining({ PAUSE: "pause" , SEEK: "seek" , STREAM_VOLUME: "stream_volume" , STREAM_MUTE: "stream_mute" })); expect(chrome.cast.media.MetadataType).toEqual(jasmine.objectContaining({ GENERIC: 0 , MOVIE: 1 , TV_SHOW: 2 , MUSIC_TRACK: 3 , PHOTO: 4 })); expect(chrome.cast.media.PlayerState).toEqual(jasmine.objectContaining({ IDLE: "IDLE" , PLAYING: "PLAYING" , PAUSED: "PAUSED" , BUFFERING: "BUFFERING" })); expect(chrome.cast.media.RepeatMode).toEqual(jasmine.objectContaining({ OFF: "REPEAT_OFF" , ALL: "REPEAT_ALL" , SINGLE: "REPEAT_SINGLE" , ALL_AND_SHUFFLE: "REPEAT_ALL_AND_SHUFFLE" })); expect(chrome.cast.media.ResumeState).toEqual(jasmine.objectContaining({ PLAYBACK_START: "PLAYBACK_START" , PLAYBACK_PAUSE: "PLAYBACK_PAUSE" })); expect(chrome.cast.media.StreamType).toEqual(jasmine.objectContaining({ BUFFERED: "BUFFERED" , LIVE: "LIVE" , OTHER: "OTHER" })); expect(chrome.cast.media.TextTrackEdgeType).toEqual(jasmine.objectContaining({ NONE: "NONE" , OUTLINE: "OUTLINE" , DROP_SHADOW: "DROP_SHADOW" , RAISED: "RAISED" , DEPRESSED: "DEPRESSED" })); expect(chrome.cast.media.TextTrackFontGenericFamily).toEqual(jasmine.objectContaining({ SANS_SERIF: "SANS_SERIF" , MONOSPACED_SANS_SERIF: "MONOSPACED_SANS_SERIF" , SERIF: "SERIF" , MONOSPACED_SERIF: "MONOSPACED_SERIF" , CASUAL: "CASUAL" , CURSIVE: "CURSIVE" , SMALL_CAPITALS: "SMALL_CAPITALS" })); expect(chrome.cast.media.TextTrackFontStyle).toEqual(jasmine.objectContaining({ NORMAL: "NORMAL" , BOLD: "BOLD" , BOLD_ITALIC: "BOLD_ITALIC" , ITALIC: "ITALIC" })); expect(chrome.cast.media.TextTrackType).toEqual(jasmine.objectContaining({ SUBTITLES: "SUBTITLES" , CAPTIONS: "CAPTIONS" , DESCRIPTIONS: "DESCRIPTIONS" , CHAPTERS: "CHAPTERS" , METADATA: "METADATA" })); expect(chrome.cast.media.TextTrackWindowType).toEqual(jasmine.objectContaining({ NONE: "NONE" , NORMAL: "NORMAL" , ROUNDED_CORNERS: "ROUNDED_CORNERS" })); expect(chrome.cast.media.TrackType).toEqual(jasmine.objectContaining({ TEXT: "TEXT" , AUDIO: "AUDIO" , VIDEO: "VIDEO" })); }); describe("chrome.cast.media.timeout", () => { it ("should have all properties", () => { expect(chrome.cast.media.timeout.editTracksInfo).toBe(0); expect(chrome.cast.media.timeout.getStatus).toBe(0); expect(chrome.cast.media.timeout.load).toBe(0); expect(chrome.cast.media.timeout.pause).toBe(0); expect(chrome.cast.media.timeout.play).toBe(0); expect(chrome.cast.media.timeout.queue).toBe(0); expect(chrome.cast.media.timeout.seek).toBe(0); expect(chrome.cast.media.timeout.setVolume).toBe(0); expect(chrome.cast.media.timeout.stop).toBe(0); }) }); }); });