Skip to content
Snippets Groups Projects
Select Git revision
  • f4c6501debac90abefc2a13cdc82cc3db92838a9
  • main default protected
  • daxid_dev
  • base-webtop
  • kasm-sudoer
  • functionnal-poc
  • reorganisate-docker-layer
  • 3-file-browser
8 results

install-anaconda.sh

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
        });
      });
    });