Skip to content
Snippets Groups Projects
Select Git revision
  • 41f9bf109ba2bb19def66a147303ad0fc8b09e70
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

WindowSideBar.js

Blame
  • VideoViewer.test.js 3.75 KiB
    import React from 'react';
    import { shallow } from 'enzyme';
    import { Utils } from 'manifesto.js';
    import AnnotationFactory from '../../../src/lib/AnnotationFactory';
    import { VideoViewer } from '../../../src/components/VideoViewer';
    import videoSimple from '../../fixtures/version-3/video.json';
    import videoCaptions from '../../fixtures/version-3/video_captions.json';
    import videoMultiCaptions from '../../fixtures/version-3/video_multiples_captions.json';
    import videoMultiCaptionsMultiAnno from '../../fixtures/version-3/video_captions_other.json';
    
    /** create wrapper */
    function createWrapper(props, suspenseFallback) {
      return shallow(
        <VideoViewer
          classes={{}}
          videoOptions={{ crossOrigin: 'anonymous' }}
          {...props}
        />,
      );
    }
    
    describe('VideoViewer', () => {
      let wrapper;
      describe('render', () => {
        it('video', () => {
          wrapper = createWrapper({
            canvas: Utils.parseManifest(videoSimple).getSequences()[0].getCanvases()[0],
          }, true);
          expect(wrapper.exists('video[crossOrigin="anonymous"]')).toBe(true); // eslint-disable-line jsx-a11y/media-has-caption
          expect(wrapper.contains(<source src="https://fixtures.iiif.io/video/indiana/30-minute-clock/medium/30-minute-clock.mp4" type="video/mp4" />)).toBe(true);
        });
        it('one caption', () => {
          const canvas = Utils.parseManifest(videoCaptions).getSequences()[0].getCanvases()[0];
          /* cf selectors/annotations/getPresentAnnotationsCanvas */
          const annotations = canvas.__jsonld.annotations.flatMap((a) => AnnotationFactory.determineAnnotation(a));
          wrapper = createWrapper({
            annotations,
            canvas,
          }, true);
          expect(wrapper.contains(<track src="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt" srcLang="en" />)).toBe(true);
          expect(wrapper.exists('video[crossOrigin="anonymous"]')).toBe(true); // eslint-disable-line jsx-a11y/media-has-caption
        });
        it('multiples captions', () => {
          const canvas = Utils.parseManifest(videoMultiCaptions).getSequences()[0].getCanvases()[0];
          /* cf selectors/annotations/getPresentAnnotationsCanvas */
          const annotations = canvas.__jsonld.annotations.flatMap((a) => AnnotationFactory.determineAnnotation(a));
          wrapper = createWrapper({
            annotations,
            canvas,
          }, true);
          expect(wrapper.contains(<track src="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt#en" srcLang="en" />)).toBe(true);
          expect(wrapper.contains(<track src="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt#fr" srcLang="fr" />)).toBe(true);
          expect(wrapper.exists('video[crossOrigin="anonymous"]')).toBe(true); // eslint-disable-line jsx-a11y/media-has-caption
        });
        it('multiples captions in multiples annotations', () => {
          const canvas = Utils.parseManifest(videoMultiCaptionsMultiAnno).getSequences()[0].getCanvases()[0];
          /* cf selectors/annotations/getPresentAnnotationsCanvas */
          const annotations = canvas.__jsonld.annotations.flatMap((a) => AnnotationFactory.determineAnnotation(a));
          wrapper = createWrapper({
            annotations,
            canvas,
          }, true);
          expect(wrapper.contains(<track src="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt#en" srcLang="en" />)).toBe(true);
          expect(wrapper.contains(<track src="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt#fr" srcLang="fr" />)).toBe(true);
          expect(wrapper.contains(<track src="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt#ru" srcLang="ru" />)).toBe(true);
          expect(wrapper.exists('video[crossOrigin="anonymous"]')).toBe(true); // eslint-disable-line jsx-a11y/media-has-caption
        });
      });
    });