<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Canvas RCE Mocha Tests" time="0.3290000000000002" tests="595" failures="0" skipped="4">
  <testsuite name="Canvas RCE Mocha Tests" timestamp="2019-08-27T19:39:02" tests="0" failures="0" time="0">
  </testsuite>
  <testsuite name="Editor/Sidebar bridge" timestamp="2019-08-27T19:39:02" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/bridge.test.js" failures="0" time="0">
    <testcase name="Editor/Sidebar bridge focusEditor sets the active editor" time="0" classname="focusEditor sets the active editor">
    </testcase>
  </testsuite>
  <testsuite name="detachEditor" timestamp="2019-08-27T19:39:03" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/bridge.test.js" failures="0" time="0.001">
    <testcase name="Editor/Sidebar bridge detachEditor given active editor clears the active editor" time="0" classname="given active editor clears the active editor">
    </testcase>
    <testcase name="Editor/Sidebar bridge detachEditor given some other editor leaves the active editor alone" time="0.001" classname="given some other editor leaves the active editor alone">
    </testcase>
  </testsuite>
  <testsuite name="renderEditor" timestamp="2019-08-27T19:39:03" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/bridge.test.js" failures="0" time="0.001">
    <testcase name="Editor/Sidebar bridge renderEditor sets the active editor" time="0.001" classname="sets the active editor">
    </testcase>
    <testcase name="Editor/Sidebar bridge renderEditor accepts the first editor rendered when many rendered in a row" time="0" classname="accepts the first editor rendered when many rendered in a row">
    </testcase>
  </testsuite>
  <testsuite name="insertLink" timestamp="2019-08-27T19:39:03" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/bridge.test.js" failures="0" time="0.003">
    <testcase name="Editor/Sidebar bridge insertLink insertLink with an active editor forwards the link to createLink" time="0.002" classname="insertLink with an active editor forwards the link to createLink">
    </testcase>
    <testcase name="Editor/Sidebar bridge insertLink insertLink with no active editor is a no-op, but warns" time="0" classname="insertLink with no active editor is a no-op, but warns">
    </testcase>
    <testcase name="Editor/Sidebar bridge insertLink adds selectionDetails to links" time="0.001" classname="adds selectionDetails to links">
    </testcase>
  </testsuite>
  <testsuite name="Bridge actions, embed image" timestamp="2019-08-27T19:39:03" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/bridge/index.test.js" failures="0" time="0.002">
    <testcase name="Bridge actions, embed image inserts an image when no selection" time="0.001" classname="inserts an image when no selection">
    </testcase>
    <testcase name="Bridge actions, embed image inserts an image when image is selected" time="0" classname="inserts an image when image is selected">
    </testcase>
    <testcase name="Bridge actions, embed image inserts a link through the bridge" time="0.001" classname="inserts a link through the bridge">
    </testcase>
  </testsuite>
  <testsuite name="FileTree/File" timestamp="2019-08-27T19:39:03" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/FileTree/File.test.js" failures="0" time="0.006">
    <testcase name="FileTree/File renders a button with file name" time="0.005" classname="renders a button with file name">
    </testcase>
    <testcase name="FileTree/File calls onSelect with file id when button is clicked" time="0.001" classname="calls onSelect with file id when button is clicked">
    </testcase>
    <testcase name="FileTree/File does not throw when onSelect is not defined" time="0" classname="does not throw when onSelect is not defined">
    </testcase>
  </testsuite>
  <testsuite name="FileTree/Folder" timestamp="2019-08-27T19:39:03" tests="12" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/FileTree/Folder.test.js" failures="0" time="0.003">
    <testcase name="FileTree/Folder renders a button with the folder name" time="0.001" classname="renders a button with the folder name">
    </testcase>
    <testcase name="FileTree/Folder shows loading if expanded and loading prop is true" time="0.002" classname="shows loading if expanded and loading prop is true">
    </testcase>
    <testcase name="FileTree/Folder does not show loading if loading is false" time="0" classname="does not show loading if loading is false">
    </testcase>
    <testcase name="FileTree/Folder does not show loading if loading is true but not expanded" time="0" classname="does not show loading if loading is true but not expanded">
    </testcase>
    <testcase name="FileTree/Folder renders subdirectories with correct props when expaneded" time="0" classname="renders subdirectories with correct props when expaneded">
    </testcase>
    <testcase name="FileTree/Folder does not render subdirectories when not expaneded" time="0" classname="does not render subdirectories when not expaneded">
    </testcase>
    <testcase name="FileTree/Folder renders files with correct props when expaneded" time="0" classname="renders files with correct props when expaneded">
    </testcase>
    <testcase name="FileTree/Folder does not render files when not expaneded" time="0" classname="does not render files when not expaneded">
    </testcase>
    <testcase name="FileTree/Folder calls onToggle with folder id when button is clicked" time="0" classname="calls onToggle with folder id when button is clicked">
    </testcase>
    <testcase name="FileTree/Folder does not throw when onToggle is not defined" time="0" classname="does not throw when onToggle is not defined">
    </testcase>
    <testcase name="FileTree/Folder sets aria expanded to true if expanded" time="0" classname="sets aria expanded to true if expanded">
    </testcase>
    <testcase name="FileTree/Folder sets aria expanded to false if not expanded" time="0" classname="sets aria expanded to false if not expanded">
    </testcase>
  </testsuite>
  <testsuite name="FileTree/index" timestamp="2019-08-27T19:39:03" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/FileTree/index.test.js" failures="0" time="0">
    <testcase name="FileTree/index passes props to Folder component" time="0" classname="passes props to Folder component">
    </testcase>
    <testcase name="FileTree/index optionally sets max-height via prop" time="0" classname="optionally sets max-height via prop">
    </testcase>
  </testsuite>
  <testsuite name="keyboard navigation" timestamp="2019-08-27T19:39:03" tests="7" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/FileTree/index.test.js" failures="0" time="0.003">
    <testcase name="FileTree/index keyboard navigation focus the next button when down is pushed" time="0.001" classname="focus the next button when down is pushed">
    </testcase>
    <testcase name="FileTree/index keyboard navigation focus the previous button when up is pushed" time="0" classname="focus the previous button when up is pushed">
    </testcase>
    <testcase name="FileTree/index keyboard navigation does not move focus up when on the first button" time="0.001" classname="does not move focus up when on the first button">
    </testcase>
    <testcase name="FileTree/index keyboard navigation does not move focus down when on the last button" time="0.001" classname="does not move focus down when on the last button">
    </testcase>
    <testcase name="FileTree/index keyboard navigation stops event propagation when down is pushed" time="0" classname="stops event propagation when down is pushed">
    </testcase>
    <testcase name="FileTree/index keyboard navigation stops event propagation when up is pushed" time="0" classname="stops event propagation when up is pushed">
    </testcase>
    <testcase name="FileTree/index keyboard navigation does not stop event propagation when other keys are pushed" time="0" classname="does not stop event propagation when other keys are pushed">
    </testcase>
  </testsuite>
  <testsuite name="Loading" timestamp="2019-08-27T19:39:03" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/Loading.test.js" failures="0" time="0.001">
    <testcase name="Loading includes a screenreader-only message" time="0.001" classname="includes a screenreader-only message">
    </testcase>
  </testsuite>
  <testsuite name="LoadMore" timestamp="2019-08-27T19:39:03" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/LoadMore.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="focus handling" timestamp="2019-08-27T19:39:03" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/LoadMore.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="Load more results button" timestamp="2019-08-27T19:39:03" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/LoadMore.test.js" failures="0" time="0.003">
    <testcase name="LoadMore Load more results button renders if hasMore" time="0.001" classname="renders if hasMore">
    </testcase>
    <testcase name="LoadMore Load more results button doesn&apos;t render if not hasMore" time="0" classname="doesn&apos;t render if not hasMore">
    </testcase>
    <testcase name="LoadMore Load more results button doesn&apos;t render if isLoading" time="0.001" classname="doesn&apos;t render if isLoading">
    </testcase>
    <testcase name="LoadMore Load more results button calls loadMore when clicked" time="0.001" classname="calls loadMore when clicked">
    </testcase>
  </testsuite>
  <testsuite name="Loading indicator" timestamp="2019-08-27T19:39:03" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/components/LoadMore.test.js" failures="0" time="0.001">
    <testcase name="LoadMore Loading indicator renders if non-empty and hasMore" time="0.001" classname="renders if non-empty and hasMore">
    </testcase>
    <testcase name="LoadMore Loading indicator doesn&apos;t render if not hasMore" time="0" classname="doesn&apos;t render if not hasMore">
    </testcase>
    <testcase name="LoadMore Loading indicator doesn&apos;t render if empty" time="0" classname="doesn&apos;t render if empty">
    </testcase>
    <testcase name="LoadMore Loading indicator visible if isLoading" time="0" classname="visible if isLoading">
    </testcase>
    <testcase name="LoadMore Loading indicator hidden if not isLoading" time="0" classname="hidden if not isLoading">
    </testcase>
  </testsuite>
  <testsuite name="Common file url utils" timestamp="2019-08-27T19:39:03" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/fileUrl.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="downloadToWrap" timestamp="2019-08-27T19:39:03" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/fileUrl.test.js" failures="0" time="0">
    <testcase name="Common file url utils downloadToWrap removes download_frd from the query params" time="0" classname="removes download_frd from the query params">
    </testcase>
    <testcase name="Common file url utils downloadToWrap adds wrap=1 to the query params" time="0" classname="adds wrap=1 to the query params">
    </testcase>
    <testcase name="Common file url utils downloadToWrap returns null if url is null" time="0" classname="returns null if url is null">
    </testcase>
    <testcase name="Common file url utils downloadToWrap returns undefined if url is undefined" time="0" classname="returns undefined if url is undefined">
    </testcase>
    <testcase name="Common file url utils downloadToWrap returns empty string for empty strings" time="0" classname="returns empty string for empty strings">
    </testcase>
  </testsuite>
  <testsuite name="indicate function" timestamp="2019-08-27T19:39:03" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/indicate.test.js" failures="0" time="0.001">
    <testcase name="indicate function appends a div to the body" time="0" classname="appends a div to the body">
    </testcase>
    <testcase name="indicate function removes the div after 2 seconds" time="0.001" classname="removes the div after 2 seconds">
    </testcase>
  </testsuite>
  <testsuite name="shape" timestamp="2019-08-27T19:39:03" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/indicate.test.js" failures="0" time="0.001">
    <testcase name="indicate function shape has dimensions of region plus margin" time="0" classname="has dimensions of region plus margin">
    </testcase>
    <testcase name="indicate function shape is positioned at region minus margin" time="0" classname="is positioned at region minus margin">
    </testcase>
    <testcase name="indicate function shape has a default margin of 3" time="0.001" classname="has a default margin of 3">
    </testcase>
  </testsuite>
  <testsuite name="transitions" timestamp="2019-08-27T19:39:03" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/indicate.test.js" failures="0" time="0.001">
    <testcase name="indicate function transitions div initially has enter and active classes" time="0" classname="div initially has enter and active classes">
    </testcase>
    <testcase name="indicate function transitions div has leave class after 900ms" time="0" classname="div has leave class after 900ms">
    </testcase>
    <testcase name="indicate function transitions div gets leave fast class on mouse over" time="0.001" classname="div gets leave fast class on mouse over">
    </testcase>
  </testsuite>
  <testsuite name="fileEmbed" timestamp="2019-08-27T19:39:03" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/mimeClass.test.js" failures="0" time="0.003">
    <testcase name="fileEmbed defaults to file" time="0" classname="defaults to file">
    </testcase>
    <testcase name="fileEmbed uses content-type to identify video and audio" time="0.001" classname="uses content-type to identify video and audio">
    </testcase>
    <testcase name="fileEmbed returns media entry id if provided" time="0" classname="returns media entry id if provided">
    </testcase>
    <testcase name="fileEmbed returns maybe in place of media entry id if not provided" time="0" classname="returns maybe in place of media entry id if not provided">
    </testcase>
    <testcase name="fileEmbed picks scribd if there is a preview_url" time="0.001" classname="picks scribd if there is a preview_url">
    </testcase>
    <testcase name="fileEmbed uses content-type to identify images" time="0.001" classname="uses content-type to identify images">
    </testcase>
  </testsuite>
  <testsuite name="mimeClass" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/mimeClass.test.js" failures="0" time="0">
    <testcase name="mimeClass returns mime_class attribute if present" time="0" classname="returns mime_class attribute if present">
    </testcase>
    <testcase name="mimeClass returns value corresponding to provided `content-type`" time="0" classname="returns value corresponding to provided `content-type`">
    </testcase>
    <testcase name="mimeClass returns value corresponding to provided `type`" time="0" classname="returns value corresponding to provided `type`">
    </testcase>
  </testsuite>
  <testsuite name="scroll" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/scroll.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="element in view method" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/common/scroll.test.js" failures="0" time="0.113">
    <testcase name="scroll element in view method calls scrollIntoView()" time="0.113" classname="calls scrollIntoView()">
    </testcase>
  </testsuite>
  <testsuite name="CanvasRce" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/CanvasRce.test.js" failures="0" time="0.003">
    <testcase name="CanvasRce bridges newly rendered editors" time="0.002" classname="bridges newly rendered editors">
    </testcase>
    <testcase name="CanvasRce uses the canvas variant of the tinymce light skin by default" time="0.001" classname="uses the canvas variant of the tinymce light skin by default">
    </testcase>
    <testcase name="CanvasRce does not use the bundled skin if skin is passed in props" time="0" classname="does not use the bundled skin if skin is passed in props">
    </testcase>
  </testsuite>
  <testsuite name="instructure_image plugin" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/clickCallback.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="button click" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/clickCallback.test.js" failures="0" time="0">
    <testcase name="instructure_image plugin button click dispatches a custom tinyRCE event" time="0" classname="dispatches a custom tinyRCE event">
    </testcase>
  </testsuite>
  <testsuite name="contentInsertion" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertion.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="insertLink" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertion.test.js" failures="0" time="0.006">
    <testcase name="contentInsertion insertLink builds an anchor link with appropriate embed class" time="0.004" classname="builds an anchor link with appropriate embed class">
    </testcase>
    <testcase name="contentInsertion insertLink uses link data to build html" time="0" classname="uses link data to build html">
    </testcase>
    <testcase name="contentInsertion insertLink can use url if no href" time="0.001" classname="can use url if no href">
    </testcase>
    <testcase name="contentInsertion insertLink cleans a url with no protocol" time="0.001" classname="cleans a url with no protocol">
    </testcase>
    <testcase name="contentInsertion insertLink sets embed id with media entry id for videos" time="0" classname="sets embed id with media entry id for videos">
    </testcase>
    <testcase name="contentInsertion insertLink sets embed id with media entry id for audio" time="0" classname="sets embed id with media entry id for audio">
    </testcase>
  </testsuite>
  <testsuite name="insertContent" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertion.test.js" failures="0" time="0.001">
    <testcase name="contentInsertion insertContent accepts string content" time="0.001" classname="accepts string content">
    </testcase>
    <testcase name="contentInsertion insertContent calls replaceTextareaSelection() when editor is hidden" time="0" classname="calls replaceTextareaSelection() when editor is hidden">
    </testcase>
  </testsuite>
  <testsuite name="insertImage" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertion.test.js" failures="0" time="0">
    <testcase name="contentInsertion insertImage builds image html from image data" time="0" classname="builds image html from image data">
    </testcase>
    <testcase name="contentInsertion insertImage uses url if no href" time="0" classname="uses url if no href">
    </testcase>
    <testcase name="contentInsertion insertImage builds linked image html from linked image data" time="0" classname="builds linked image html from linked image data">
    </testcase>
  </testsuite>
  <testsuite name="existingContentToLink" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertion.test.js" failures="0" time="0">
    <testcase name="contentInsertion existingContentToLink returns true if content selected" time="0" classname="returns true if content selected">
    </testcase>
    <testcase name="contentInsertion existingContentToLink returns false if content not selected" time="0" classname="returns false if content not selected">
    </testcase>
    <testcase name="contentInsertion existingContentToLink returns true when only an editor is passed with a selection" time="0" classname="returns true when only an editor is passed with a selection">
    </testcase>
  </testsuite>
  <testsuite name="existingContentToLinkIsImg" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertion.test.js" failures="0" time="0">
    <testcase name="contentInsertion existingContentToLinkIsImg returns false if no content selected" time="0" classname="returns false if no content selected">
    </testcase>
    <testcase name="contentInsertion existingContentToLinkIsImg returns false if selected content is not img" time="0" classname="returns false if selected content is not img">
    </testcase>
    <testcase name="contentInsertion existingContentToLinkIsImg returns true if selected content is img" time="0" classname="returns true if selected content is img">
    </testcase>
  </testsuite>
  <testsuite name="contentInsertionUtils" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertionUtils.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="cleanUrl" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentInsertionUtils.test.js" failures="0" time="0">
    <testcase name="contentInsertionUtils cleanUrl doesnt hurt a good url" time="0" classname="doesnt hurt a good url">
    </testcase>
    <testcase name="contentInsertionUtils cleanUrl turns email addresses into mailto links" time="0" classname="turns email addresses into mailto links">
    </testcase>
    <testcase name="contentInsertionUtils cleanUrl adding a protocol to unprotocoled addresses" time="0" classname="adding a protocol to unprotocoled addresses">
    </testcase>
    <testcase name="contentInsertionUtils cleanUrl doesnt mailto links with @ in them" time="0" classname="doesnt mailto links with @ in them">
    </testcase>
  </testsuite>
  <testsuite name="contentRendering" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentRendering.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="renderLink" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentRendering.test.js" failures="0" time="0">
    <testcase name="contentRendering renderLink uses link data to build html" time="0" classname="uses link data to build html">
    </testcase>
    <testcase name="contentRendering renderLink can use url if no href" time="0" classname="can use url if no href">
    </testcase>
    <testcase name="contentRendering renderLink defaults title to &apos;Link&apos;" time="0" classname="defaults title to &apos;Link&apos;">
    </testcase>
    <testcase name="contentRendering renderLink defaults contents to title" time="0" classname="defaults contents to title">
    </testcase>
    <testcase name="contentRendering renderLink defaults contents to &apos;Link&apos; if no title either" time="0" classname="defaults contents to &apos;Link&apos; if no title either">
    </testcase>
  </testsuite>
  <testsuite name="renderImage" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/contentRendering.test.js" failures="0" time="0.001">
    <testcase name="contentRendering renderImage builds image html from image data" time="0" classname="builds image html from image data">
    </testcase>
    <testcase name="contentRendering renderImage uses url if no href" time="0" classname="uses url if no href">
    </testcase>
    <testcase name="contentRendering renderImage defaults alt text to image display_name" time="0" classname="defaults alt text to image display_name">
    </testcase>
    <testcase name="contentRendering renderImage builds linked image html from linked image data" time="0" classname="builds linked image html from linked image data">
    </testcase>
    <testcase name="contentRendering renderImage renders a linked image if object has link property" time="0.001" classname="renders a linked image if object has link property">
    </testcase>
  </testsuite>
  <testsuite name="accessibleEditor" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/editorAccessibility.test.js" failures="0" time="0.004">
    <testcase name="accessibleEditor applies better aria labels" time="0.001" classname="applies better aria labels">
    </testcase>
    <testcase name="accessibleEditor adds textarea label as aria-label to rce body" time="0.001" classname="adds textarea label as aria-label to rce body">
    </testcase>
    <testcase name="accessibleEditor puts a better title on the iframe" time="0.001" classname="puts a better title on the iframe">
    </testcase>
    <testcase name="accessibleEditor makes the menubar hidden initially" time="0.001" classname="makes the menubar hidden initially">
    </testcase>
    <testcase name="accessibleEditor shows the menubar on a keyboard shortcut" time="0" classname="shows the menubar on a keyboard shortcut">
    </testcase>
    <testcase name="accessibleEditor un-tab-indexes the statusbar" time="0" classname="un-tab-indexes the statusbar">
    </testcase>
  </testsuite>
  <testsuite name="IframesTableFix - for CNVS-37129" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/IframesTableFix.test.js" failures="0" time="0.006">
    <testcase name="IframesTableFix - for CNVS-37129 ensures hackTableInsertion hooks editor.addVisual" time="0.002" classname="ensures hackTableInsertion hooks editor.addVisual">
    </testcase>
    <testcase name="IframesTableFix - for CNVS-37129 ensures addMutationObserverToTables adds MutationObserver to table" time="0.001" classname="ensures addMutationObserverToTables adds MutationObserver to table">
    </testcase>
    <testcase name="IframesTableFix - for CNVS-37129 ensures addMutationObserverToTables adds MutationObserver to table only once" time="0.002" classname="ensures addMutationObserverToTables adds MutationObserver to table only once">
    </testcase>
    <testcase name="IframesTableFix - for CNVS-37129 ensures fixIframes is called from mutationobserver" time="0.001" classname="ensures fixIframes is called from mutationobserver">
    </testcase>
    <testcase name="IframesTableFix - for CNVS-37129 ensures fixIframes fixes iframes" time="0" classname="ensures fixIframes fixes iframes">
    </testcase>
    <testcase name="IframesTableFix - for CNVS-37129 ensure fixIframes does not fix non-iframes" time="0" classname="ensure fixIframes does not fix non-iframes">
    </testcase>
  </testsuite>
  <testsuite name="IndicatorRegion module" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/indicatorRegion.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="indicatorRegion" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/indicatorRegion.test.js" failures="0" time="0">
    <testcase name="IndicatorRegion module indicatorRegion includes the width and height of the target" time="0" classname="includes the width and height of the target">
    </testcase>
    <testcase name="IndicatorRegion module indicatorRegion gets offset of iframe" time="0" classname="gets offset of iframe">
    </testcase>
    <testcase name="IndicatorRegion module indicatorRegion includes sum of the left offsets of the target and iframe" time="0" classname="includes sum of the left offsets of the target and iframe">
    </testcase>
    <testcase name="IndicatorRegion module indicatorRegion includes sum of the top offsets minus the iframe scroll" time="0" classname="includes sum of the top offsets minus the iframe scroll">
    </testcase>
  </testsuite>
  <testsuite name="normalizeLocale" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/normalizeLocale.test.js" failures="0" time="0">
    <testcase name="normalizeLocale returns &apos;en&apos; for null/undefined" time="0" classname="returns &apos;en&apos; for null/undefined">
    </testcase>
    <testcase name="normalizeLocale maps old-style canvas locales to new-style" time="0" classname="maps old-style canvas locales to new-style">
    </testcase>
    <testcase name="normalizeLocale reduces unrecognized custom locales to the base locale" time="0" classname="reduces unrecognized custom locales to the base locale">
    </testcase>
    <testcase name="normalizeLocale recognizes known custom locales and doesn&apos;t reduce them" time="0" classname="recognizes known custom locales and doesn&apos;t reduce them">
    </testcase>
    <testcase name="normalizeLocale otherwise just return en" time="0" classname="otherwise just return en">
    </testcase>
  </testsuite>
  <testsuite name="Rce normalizeProps" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/normalizeProps.test.js" failures="0" time="0">
    <testcase name="Rce normalizeProps calls editorOptions with provided tinymce" time="0" classname="calls editorOptions with provided tinymce">
    </testcase>
    <testcase name="Rce normalizeProps sets tinymce as provided, even over prop" time="0" classname="sets tinymce as provided, even over prop">
    </testcase>
    <testcase name="Rce normalizeProps normalizes the language" time="0" classname="normalizes the language">
    </testcase>
    <testcase name="Rce normalizeProps retains other props" time="0" classname="retains other props">
    </testcase>
  </testsuite>
  <testsuite name="RCEWrapper" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="static methods" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="getByEditor" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper static methods getByEditor gets instances by rendered tinymce object reference" time="0" classname="gets instances by rendered tinymce object reference">
    </testcase>
  </testsuite>
  <testsuite name="tinyMCE instance interactions" timestamp="2019-08-27T19:39:04" tests="7" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.003">
    <testcase name="RCEWrapper tinyMCE instance interactions calls toggle on its tinyMCE instance" time="0" classname="calls toggle on its tinyMCE instance">
    </testcase>
    <testcase name="RCEWrapper tinyMCE instance interactions syncs content during toggle if coming back from hidden instance" time="0.002" classname="syncs content during toggle if coming back from hidden instance">
    </testcase>
    <testcase name="RCEWrapper tinyMCE instance interactions calls focus on its tinyMCE instance" time="0.001" classname="calls focus on its tinyMCE instance">
    </testcase>
    <testcase name="RCEWrapper tinyMCE instance interactions resets the doc of the editor on removal" time="0" classname="resets the doc of the editor on removal">
    </testcase>
    <testcase name="RCEWrapper tinyMCE instance interactions calls handleUnmount when destroyed" time="0" classname="calls handleUnmount when destroyed">
    </testcase>
    <testcase name="RCEWrapper tinyMCE instance interactions doesnt reset the doc for other commands" time="0" classname="doesnt reset the doc for other commands">
    </testcase>
    <testcase name="RCEWrapper tinyMCE instance interactions proxies hidden checks to editor" time="0" classname="proxies hidden checks to editor">
    </testcase>
  </testsuite>
  <testsuite name="calling methods dynamically" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper calling methods dynamically pipes arguments to specified method" time="0" classname="pipes arguments to specified method">
    </testcase>
    <testcase name="RCEWrapper calling methods dynamically handles &apos;exists?&apos;" time="0" classname="handles &apos;exists?&apos;">
    </testcase>
  </testsuite>
  <testsuite name="getting and setting content" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.001">
    <testcase name="RCEWrapper getting and setting content sets code properly" time="0" classname="sets code properly">
    </testcase>
    <testcase name="RCEWrapper getting and setting content gets code properly" time="0" classname="gets code properly">
    </testcase>
    <testcase name="RCEWrapper getting and setting content inserts code properly" time="0.001" classname="inserts code properly">
    </testcase>
    <testcase name="RCEWrapper getting and setting content inserts links" time="0" classname="inserts links">
    </testcase>
  </testsuite>
  <testsuite name="insert image" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper getting and setting content insert image works when no element is returned from content insertion" time="0" classname="works when no element is returned from content insertion">
    </testcase>
  </testsuite>
  <testsuite name="indicator" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.001">
    <testcase name="RCEWrapper getting and setting content indicator does not indicate() if editor is hidden" time="0.001" classname="does not indicate() if editor is hidden">
    </testcase>
    <testcase name="RCEWrapper getting and setting content indicator waits until images are loaded to indicate" time="0" classname="waits until images are loaded to indicate">
    </testcase>
  </testsuite>
  <testsuite name="broken images" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper getting and setting content broken images calls checkImageLoadError when complete" time="0" classname="calls checkImageLoadError when complete">
    </testcase>
    <testcase name="RCEWrapper getting and setting content broken images sets an onerror handler when not complete" time="0" classname="sets an onerror handler when not complete">
    </testcase>
  </testsuite>
  <testsuite name="checkImageLoadError" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.003">
    <testcase name="RCEWrapper getting and setting content broken images checkImageLoadError does not error if called without an element" time="0" classname="does not error if called without an element">
    </testcase>
    <testcase name="RCEWrapper getting and setting content broken images checkImageLoadError does not error if called without a non-image element" time="0" classname="does not error if called without a non-image element">
    </testcase>
    <testcase name="RCEWrapper getting and setting content broken images checkImageLoadError checks onload for images not done loading" time="0.001" classname="checks onload for images not done loading">
    </testcase>
    <testcase name="RCEWrapper getting and setting content broken images checkImageLoadError sets the proper styles when the naturalWidth is 0" time="0.002" classname="sets the proper styles when the naturalWidth is 0">
    </testcase>
  </testsuite>
  <testsuite name="alias functions" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper alias functions sets aliases properly" time="0" classname="sets aliases properly">
    </testcase>
  </testsuite>
  <testsuite name="is_dirty()" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.003">
    <testcase name="RCEWrapper is_dirty() is true if not hidden and defaultContent is not equal to getConent()" time="0.002" classname="is true if not hidden and defaultContent is not equal to getConent()">
    </testcase>
    <testcase name="RCEWrapper is_dirty() is false if not hidden and defaultContent is equal to getConent()" time="0" classname="is false if not hidden and defaultContent is equal to getConent()">
    </testcase>
    <testcase name="RCEWrapper is_dirty() is true if hidden and defaultContent is not equal to textarea value" time="0" classname="is true if hidden and defaultContent is not equal to textarea value">
    </testcase>
    <testcase name="RCEWrapper is_dirty() is false if hidden and defaultContent is equal to textarea value" time="0" classname="is false if hidden and defaultContent is equal to textarea value">
    </testcase>
    <testcase name="RCEWrapper is_dirty() compares content with defaultContent serialized by editor serializer" time="0.001" classname="compares content with defaultContent serialized by editor serializer">
    </testcase>
  </testsuite>
  <testsuite name="onFocus" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.001">
    <testcase name="RCEWrapper onFocus calls Bridge.focusEditor with editor" time="0.001" classname="calls Bridge.focusEditor with editor">
    </testcase>
    <testcase name="RCEWrapper onFocus calls props.onFocus with editor if exists" time="0" classname="calls props.onFocus with editor if exists">
    </testcase>
  </testsuite>
  <testsuite name="onRemove" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper onRemove calls Bridge.detachEditor with editor" time="0" classname="calls Bridge.detachEditor with editor">
    </testcase>
    <testcase name="RCEWrapper onRemove calls props.onRemove with editor if exists" time="0" classname="calls props.onRemove with editor if exists">
    </testcase>
    <testcase name="RCEWrapper onRemove unmounts the rce component" time="0" classname="unmounts the rce component">
    </testcase>
  </testsuite>
  <testsuite name="setup option" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper setup option registers editor to allow getting wrapper by editor" time="0" classname="registers editor to allow getting wrapper by editor">
    </testcase>
    <testcase name="RCEWrapper setup option it calls original setup from editorOptions" time="0" classname="it calls original setup from editorOptions">
    </testcase>
    <testcase name="RCEWrapper setup option does not throw if options does not have a setup function" time="0" classname="does not throw if options does not have a setup function">
    </testcase>
    <testcase name="RCEWrapper setup option passes other options through unchanged" time="0" classname="passes other options through unchanged">
    </testcase>
  </testsuite>
  <testsuite name="textarea" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="lifecycle" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0.001">
    <testcase name="RCEWrapper textarea lifecycle adds change listener after mount" time="0" classname="adds change listener after mount">
    </testcase>
    <testcase name="RCEWrapper textarea lifecycle updates change listener if textarea changes" time="0.001" classname="updates change listener if textarea changes">
    </testcase>
    <testcase name="RCEWrapper textarea lifecycle removes change listener before component unmounts" time="0" classname="removes change listener before component unmounts">
    </testcase>
  </testsuite>
  <testsuite name="handleTextareaChange" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/RCEWrapper.test.js" failures="0" time="0">
    <testcase name="RCEWrapper textarea handleTextareaChange updates the editor content if editor is hidden" time="0" classname="updates the editor content if editor is hidden">
    </testcase>
    <testcase name="RCEWrapper textarea handleTextareaChange does not update the editor if editor is not hidden" time="0" classname="does not update the editor if editor is not hidden">
    </testcase>
  </testsuite>
  <testsuite name="RceModule" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/root.test.js" failures="0" time="0.001">
    <testcase name="RceModule bridges newly rendered editors" time="0.001" classname="bridges newly rendered editors">
    </testcase>
    <testcase name="RceModule uses the canvas variant of the tinymce light skin by default" time="0" classname="uses the canvas variant of the tinymce light skin by default">
    </testcase>
    <testcase name="RceModule does not use the bundled skin if skin is passed in props" time="0" classname="does not use the bundled skin if skin is passed in props">
    </testcase>
    <testcase name="RceModule handleUnmount unmounts root component" time="0" classname="handleUnmount unmounts root component">
    </testcase>
  </testsuite>
  <testsuite name="sanitizeEditorOptions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/sanitizeEditorOptions.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="changing options that canvas has that we don&apos;t support" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/sanitizeEditorOptions.test.js" failures="0" time="0">
    <testcase name="sanitizeEditorOptions changing options that canvas has that we don&apos;t support changes nothing for inoffensive options" time="0" classname="changes nothing for inoffensive options">
    </testcase>
  </testsuite>
  <testsuite name="replacing plugin configurations" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/sanitizeEditorOptions.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="with external_plugins" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/sanitizeEditorOptions.test.js" failures="0" time="0.001">
    <testcase name="sanitizeEditorOptions replacing plugin configurations with external_plugins doesnt put instructure_embed through as a plugin because we don&apos;t supply that functionality" time="0" classname="doesnt put instructure_embed through as a plugin because we don&apos;t supply that functionality">
    </testcase>
    <testcase name="sanitizeEditorOptions replacing plugin configurations with external_plugins leaves other custom external plugins in the config" time="0.001" classname="leaves other custom external plugins in the config">
    </testcase>
  </testsuite>
  <testsuite name="wrapInitCb" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/module/wrapInitCb.test.js" failures="0" time="0.002">
    <testcase name="wrapInitCb tries to add attributes to el in cb" time="0.001" classname="tries to add attributes to el in cb">
    </testcase>
    <testcase name="wrapInitCb sets rich_text on el" time="0" classname="sets rich_text on el">
    </testcase>
    <testcase name="wrapInitCb still calls old cb" time="0.001" classname="still calls old cb">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar data actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/data.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="fetchPage" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/data.test.js" failures="0" time="0.004">
    <testcase name="Sidebar data actions fetchPage dispatches requestPage first" time="0.001" classname="dispatches requestPage first">
    </testcase>
    <testcase name="Sidebar data actions fetchPage uses bookmark from store to call source.fetchPage" time="0.001" classname="uses bookmark from store to call source.fetchPage">
    </testcase>
    <testcase name="Sidebar data actions fetchPage dispatches receivePage with page retrieved from source" time="0.001" classname="dispatches receivePage with page retrieved from source">
    </testcase>
    <testcase name="Sidebar data actions fetchPage dispatches failPage on error retrieving page from source" time="0.001" classname="dispatches failPage on error retrieving page from source">
    </testcase>
  </testsuite>
  <testsuite name="fetchNextPage" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/data.test.js" failures="0" time="0.001">
    <testcase name="Sidebar data actions fetchNextPage fetches next page if collection has bookmark and is not loading" time="0" classname="fetches next page if collection has bookmark and is not loading">
    </testcase>
    <testcase name="Sidebar data actions fetchNextPage skips fetching next page if collection has no bookmark" time="0.001" classname="skips fetching next page if collection has no bookmark">
    </testcase>
    <testcase name="Sidebar data actions fetchNextPage skips fetching next page if collection is already loading" time="0" classname="skips fetching next page if collection is already loading">
    </testcase>
  </testsuite>
  <testsuite name="fetchInitialPage" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/data.test.js" failures="0" time="0.004">
    <testcase name="Sidebar data actions fetchInitialPage fetches initial page if collection is empty, has bookmark, and is not loading" time="0.001" classname="fetches initial page if collection is empty, has bookmark, and is not loading">
    </testcase>
    <testcase name="Sidebar data actions fetchInitialPage skips fetching initial page if collection is not empty" time="0.001" classname="skips fetching initial page if collection is not empty">
    </testcase>
    <testcase name="Sidebar data actions fetchInitialPage skips fetching initial page if collection has no bookmark" time="0.001" classname="skips fetching initial page if collection has no bookmark">
    </testcase>
    <testcase name="Sidebar data actions fetchInitialPage skips fetching initial page if collection is already loading" time="0.001" classname="skips fetching initial page if collection is already loading">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar files actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="createToggle()" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
    <testcase name="Sidebar files actions createToggle() has the right type" time="0" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createToggle() includes id from first argument" time="0" classname="includes id from first argument">
    </testcase>
  </testsuite>
  <testsuite name="createAddFile()" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0.001">
    <testcase name="Sidebar files actions createAddFile() has the right type" time="0" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createAddFile() includes properties from file object" time="0.001" classname="includes properties from file object">
    </testcase>
    <testcase name="Sidebar files actions createAddFile() passes the embed through to the action" time="0" classname="passes the embed through to the action">
    </testcase>
  </testsuite>
  <testsuite name="createRequestFiles()" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0.001">
    <testcase name="Sidebar files actions createRequestFiles() has the right type" time="0.001" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createRequestFiles() includes id from first argument" time="0" classname="includes id from first argument">
    </testcase>
  </testsuite>
  <testsuite name="createReceiveFiles()" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0.002">
    <testcase name="Sidebar files actions createReceiveFiles() has the right type" time="0" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createReceiveFiles() includes id from first argument" time="0" classname="includes id from first argument">
    </testcase>
    <testcase name="Sidebar files actions createReceiveFiles() inclues a fileIds array plucked from the files array" time="0.002" classname="inclues a fileIds array plucked from the files array">
    </testcase>
  </testsuite>
  <testsuite name="createAddFolder()" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0.001">
    <testcase name="Sidebar files actions createAddFolder() has the right type" time="0" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createAddFolder() includes properties from folder object" time="0.001" classname="includes properties from folder object">
    </testcase>
  </testsuite>
  <testsuite name="createRequestSubfolders()" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0.001">
    <testcase name="Sidebar files actions createRequestSubfolders() has the right type" time="0.001" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createRequestSubfolders() includes id from first argument" time="0" classname="includes id from first argument">
    </testcase>
  </testsuite>
  <testsuite name="createReceiveSubfolders()" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
    <testcase name="Sidebar files actions createReceiveSubfolders() has the right type" time="0" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createReceiveSubfolders() includes id from first argument" time="0" classname="includes id from first argument">
    </testcase>
    <testcase name="Sidebar files actions createReceiveSubfolders() inclues a folderIds array plucked from the folders array" time="0" classname="inclues a folderIds array plucked from the folders array">
    </testcase>
  </testsuite>
  <testsuite name="createSetRoot()" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
    <testcase name="Sidebar files actions createSetRoot() has the right type" time="0" classname="has the right type">
    </testcase>
    <testcase name="Sidebar files actions createSetRoot() includes id from first argument" time="0" classname="includes id from first argument">
    </testcase>
  </testsuite>
  <testsuite name="async actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="requestFiles()" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0.002">
    <testcase name="Sidebar files actions async actions requestFiles() dispatches a REQUEST_FILES action" time="0" classname="dispatches a REQUEST_FILES action">
    </testcase>
    <testcase name="Sidebar files actions async actions requestFiles() calls fetchFiles for source with filesUrl" time="0" classname="calls fetchFiles for source with filesUrl">
    </testcase>
    <testcase name="Sidebar files actions async actions requestFiles() calls fetchFiles for source with optional bookmark" time="0" classname="calls fetchFiles for source with optional bookmark">
    </testcase>
    <testcase name="Sidebar files actions async actions requestFiles() dispatches ADD_FILE for each file from fetchFiles" time="0.001" classname="dispatches ADD_FILE for each file from fetchFiles">
    </testcase>
    <testcase name="Sidebar files actions async actions requestFiles() dispatches RECEIVE_FILES action" time="0" classname="dispatches RECEIVE_FILES action">
    </testcase>
    <testcase name="Sidebar files actions async actions requestFiles() calls fetchFiles w/ bookmark if returnd by fetchFiles" time="0.001" classname="calls fetchFiles w/ bookmark if returnd by fetchFiles">
    </testcase>
  </testsuite>
  <testsuite name="requestSubfolders()" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
    <testcase name="Sidebar files actions async actions requestSubfolders() dispatches a REQUEST_SUBFOLDERS action" time="0" classname="dispatches a REQUEST_SUBFOLDERS action">
    </testcase>
    <testcase name="Sidebar files actions async actions requestSubfolders() calls fetchPage for source with foldersUrl" time="0" classname="calls fetchPage for source with foldersUrl">
    </testcase>
    <testcase name="Sidebar files actions async actions requestSubfolders() calls fetchPage for source with optional bookmark" time="0" classname="calls fetchPage for source with optional bookmark">
    </testcase>
    <testcase name="Sidebar files actions async actions requestSubfolders() dispatches ADD_FOLDER for each folder from fetchPage" time="0" classname="dispatches ADD_FOLDER for each folder from fetchPage">
    </testcase>
    <testcase name="Sidebar files actions async actions requestSubfolders() dispatches RECEIVE_SUBFOLDERS action" time="0" classname="dispatches RECEIVE_SUBFOLDERS action">
    </testcase>
    <testcase name="Sidebar files actions async actions requestSubfolders() calls fetchPage w/ bookmark if returnd by fetchPage" time="0" classname="calls fetchPage w/ bookmark if returnd by fetchPage">
    </testcase>
  </testsuite>
  <testsuite name="toggle()" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
    <testcase name="Sidebar files actions async actions toggle() dispatches TOGGLE action" time="0" classname="dispatches TOGGLE action">
    </testcase>
    <testcase name="Sidebar files actions async actions toggle() requests subfolders/files if not requested and expanded" time="0" classname="requests subfolders/files if not requested and expanded">
    </testcase>
    <testcase name="Sidebar files actions async actions toggle() does not request subfolders/files if already requested" time="0" classname="does not request subfolders/files if already requested">
    </testcase>
  </testsuite>
  <testsuite name="init()" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/files.test.js" failures="0" time="0">
    <testcase name="Sidebar files actions async actions init() calls fetchRootFolder for source with state" time="0" classname="calls fetchRootFolder for source with state">
    </testcase>
    <testcase name="Sidebar files actions async actions init() calls dispatches SET_ROOT" time="0" classname="calls dispatches SET_ROOT">
    </testcase>
    <testcase name="Sidebar files actions async actions init() dispatches ADD_FOLDER for root folder" time="0" classname="dispatches ADD_FOLDER for root folder">
    </testcase>
    <testcase name="Sidebar files actions async actions init() dispatches TOGGLE for root folder" time="0" classname="dispatches TOGGLE for root folder">
    </testcase>
  </testsuite>
  <testsuite name="Flickr data actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/flickr.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="searchFlickr" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/flickr.test.js" failures="0" time="0.001">
    <testcase name="Flickr data actions searchFlickr chains through search to results" time="0.001" classname="chains through search to results">
    </testcase>
  </testsuite>
  <testsuite name="Image actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/images.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="createAddImage" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/images.test.js" failures="0" time="0">
    <testcase name="Image actions createAddImage has the right action type" time="0" classname="has the right action type">
    </testcase>
    <testcase name="Image actions createAddImage includes id from first param" time="0" classname="includes id from first param">
    </testcase>
    <testcase name="Image actions createAddImage includes filename from first param" time="0" classname="includes filename from first param">
    </testcase>
    <testcase name="Image actions createAddImage includes display_name from first param" time="0" classname="includes display_name from first param">
    </testcase>
    <testcase name="Image actions createAddImage includes preview_url from first param" time="0" classname="includes preview_url from first param">
    </testcase>
    <testcase name="Image actions createAddImage includes thumbnail_url from first param" time="0" classname="includes thumbnail_url from first param">
    </testcase>
  </testsuite>
  <testsuite name="fetchImages" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/images.test.js" failures="0" time="0.002">
    <testcase name="Image actions fetchImages fetches if first render" time="0.001" classname="fetches if first render">
    </testcase>
    <testcase name="Image actions fetchImages skips the fetch if subsequent renders" time="0.001" classname="skips the fetch if subsequent renders">
    </testcase>
    <testcase name="Image actions fetchImages fetches if requested and there are more to load" time="0" classname="fetches if requested and there are more to load">
    </testcase>
    <testcase name="Image actions fetchImages does not fetch if requested but no more to load" time="0" classname="does not fetch if requested but no more to load">
    </testcase>
  </testsuite>
  <testsuite name="Session actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/session.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="get" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/session.test.js" failures="0" time="0">
    <testcase name="Session actions get dispatches RECEIVE_SESSION with data from source" time="0" classname="dispatches RECEIVE_SESSION with data from source">
    </testcase>
  </testsuite>
  <testsuite name="Upload data actions" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="fetchFolders" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0.002">
    <testcase name="Upload data actions fetchFolders fetches if there are no folders loaded yet" time="0" classname="fetches if there are no folders loaded yet">
    </testcase>
    <testcase name="Upload data actions fetchFolders skips the fetch if there are folders already" time="0" classname="skips the fetch if there are folders already">
    </testcase>
    <testcase name="Upload data actions fetchFolders fetches the next page if a bookmark is passed" time="0.001" classname="fetches the next page if a bookmark is passed">
    </testcase>
    <testcase name="Upload data actions fetchFolders dispatches a batch action" time="0.001" classname="dispatches a batch action">
    </testcase>
  </testsuite>
  <testsuite name="setUsageRights" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0">
    <testcase name="Upload data actions setUsageRights make request to set usage rights if file has usage rights" time="0" classname="make request to set usage rights if file has usage rights">
    </testcase>
    <testcase name="Upload data actions setUsageRights does not make request if file has no usage rights" time="0" classname="does not make request if file has no usage rights">
    </testcase>
  </testsuite>
  <testsuite name="generateThumbnailUrl" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0.002">
    <testcase name="Upload data actions generateThumbnailUrl returns the results if the file is not an image" time="0.001" classname="returns the results if the file is not an image">
    </testcase>
    <testcase name="Upload data actions generateThumbnailUrl sets a data url for the thumbnail" time="0.001" classname="sets a data url for the thumbnail">
    </testcase>
  </testsuite>
  <testsuite name="uploadPreflight" timestamp="2019-08-27T19:39:04" tests="8" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0.002">
    <testcase name="Upload data actions uploadPreflight follows chain preflight -&gt; upload -&gt; complete" time="0.001" classname="follows chain preflight -&gt; upload -&gt; complete">
    </testcase>
    <testcase name="Upload data actions uploadPreflight sets usage rights" time="0" classname="sets usage rights">
    </testcase>
    <testcase name="Upload data actions uploadPreflight dispatches ADD_FILE with correct payload" time="0" classname="dispatches ADD_FILE with correct payload">
    </testcase>
    <testcase name="Upload data actions uploadPreflight dispatches INSERT_FILE with folder and file ids" time="0" classname="dispatches INSERT_FILE with folder and file ids">
    </testcase>
    <testcase name="Upload data actions uploadPreflight dispatches ADD_IMAGE if content type is image/*" time="0.001" classname="dispatches ADD_IMAGE if content type is image/*">
    </testcase>
    <testcase name="Upload data actions uploadPreflight does not dispatch ADD_IMAGE if content type is not image/*" time="0" classname="does not dispatch ADD_IMAGE if content type is not image/*">
    </testcase>
    <testcase name="Upload data actions uploadPreflight inserts the image content through the bridge" time="0" classname="inserts the image content through the bridge">
    </testcase>
    <testcase name="Upload data actions uploadPreflight inserts the file content through the bridge" time="0" classname="inserts the file content through the bridge">
    </testcase>
  </testsuite>
  <testsuite name="allUploadCompleteActions" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0">
    <testcase name="Upload data actions allUploadCompleteActions returns a list of actions" time="0" classname="returns a list of actions">
    </testcase>
  </testsuite>
  <testsuite name="embedUploadResult" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="link embed" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0">
    <testcase name="Upload data actions embedUploadResult link embed inserts link with display_name as title" time="0" classname="inserts link with display_name as title">
    </testcase>
    <testcase name="Upload data actions embedUploadResult link embed inserts link with url as href" time="0" classname="inserts link with url as href">
    </testcase>
    <testcase name="Upload data actions embedUploadResult link embed delegates to fileEmbed for embed data" time="0" classname="delegates to fileEmbed for embed data">
    </testcase>
    <testcase name="Upload data actions embedUploadResult link embed insert image on image type and text not selected" time="0" classname="insert image on image type and text not selected">
    </testcase>
    <testcase name="Upload data actions embedUploadResult link embed link image on image type and text selected" time="0" classname="link image on image type and text selected">
    </testcase>
    <testcase name="Upload data actions embedUploadResult link embed embed image on image type and image selected" time="0" classname="embed image on image type and image selected">
    </testcase>
  </testsuite>
  <testsuite name="handleFailures" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/actions/upload.test.js" failures="0" time="0.003">
    <testcase name="Upload data actions handleFailures calls quota exceeded when the file size exceeds the quota" time="0.003" classname="calls quota exceeded when the file size exceeds the quota">
    </testcase>
    <testcase name="Upload data actions handleFailures calls failUpload for other errors" time="0" classname="calls failUpload for other errors">
    </testcase>
  </testsuite>
  <testsuite name="AltTextForm" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/AltTestForm.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="form rendering" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/AltTestForm.test.js" failures="0" time="0.001">
    <testcase name="AltTextForm form rendering renders TextInput and Checkbox elements" time="0" classname="renders TextInput and Checkbox elements">
    </testcase>
    <testcase name="AltTextForm form rendering disables/enables TextInput when Checkbox is toggled" time="0.001" classname="disables/enables TextInput when Checkbox is toggled">
    </testcase>
  </testsuite>
  <testsuite name="alt resolution" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/AltTestForm.test.js" failures="0" time="0.005">
    <testcase name="AltTextForm alt resolution resolves/unresolves alt when Checkbox is toggled" time="0.001" classname="resolves/unresolves alt when Checkbox is toggled">
    </testcase>
    <testcase name="AltTextForm alt resolution resolves/unresolves alt when alt-text is entered/cleared" time="0.001" classname="resolves/unresolves alt when alt-text is entered/cleared">
    </testcase>
    <testcase name="AltTextForm alt resolution resolves alt when alt-text is entered and Checkbox is unchecked" time="0.001" classname="resolves alt when alt-text is entered and Checkbox is unchecked">
    </testcase>
    <testcase name="AltTextForm alt resolution resolves alt when Checkbox is checked and alt-text is cleared" time="0.001" classname="resolves alt when Checkbox is checked and alt-text is cleared">
    </testcase>
    <testcase name="AltTextForm alt resolution unresolves alt when Checkbox is unchecked and alt-text is cleared" time="0.001" classname="unresolves alt when Checkbox is unchecked and alt-text is cleared">
    </testcase>
  </testsuite>
  <testsuite name="FilesPanel" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FilesPanel.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="props cascade" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FilesPanel.test.js" failures="0" time="0">
    <testcase name="FilesPanel props cascade passes files prop to FileTree component" time="0" classname="passes files prop to FileTree component">
    </testcase>
    <testcase name="FilesPanel props cascade passes folders prop to FileTree component" time="0" classname="passes folders prop to FileTree component">
    </testcase>
    <testcase name="FilesPanel props cascade passes toggleFolder prop as onToggle to FileTree component" time="0" classname="passes toggleFolder prop as onToggle to FileTree component">
    </testcase>
    <testcase name="FilesPanel props cascade passes handleSelect method as onSelect to FileTree component" time="0" classname="passes handleSelect method as onSelect to FileTree component">
    </testcase>
    <testcase name="FilesPanel props cascade passes folder with rootFolderId as folder" time="0" classname="passes folder with rootFolderId as folder">
    </testcase>
  </testsuite>
  <testsuite name="renderUploadForm()" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FilesPanel.test.js" failures="0" time="0.001">
    <testcase name="FilesPanel renderUploadForm() does not render UploadForm if indicated" time="0" classname="does not render UploadForm if indicated">
    </testcase>
    <testcase name="FilesPanel renderUploadForm() renders UploadForm if indicated" time="0.001" classname="renders UploadForm if indicated">
    </testcase>
  </testsuite>
  <testsuite name="handleSelect()" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FilesPanel.test.js" failures="0" time="0.001">
    <testcase name="FilesPanel handleSelect() calls onLinkClick w/ obj w/ name and href from props.files[id]" time="0.001" classname="calls onLinkClick w/ obj w/ name and href from props.files[id]">
    </testcase>
  </testsuite>
  <testsuite name="FlickrSearch" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FlickrSearch.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="form rendering" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FlickrSearch.test.js" failures="0" time="0.005">
    <testcase name="FlickrSearch form rendering renders form if expanded" time="0.003" classname="renders form if expanded">
    </testcase>
    <testcase name="FlickrSearch form rendering is null if not expanded" time="0" classname="is null if not expanded">
    </testcase>
    <testcase name="FlickrSearch form rendering uses aria-expanded to communicate collapsed state" time="0.001" classname="uses aria-expanded to communicate collapsed state">
    </testcase>
    <testcase name="FlickrSearch form rendering fires the handler when you click the expand link" time="0.001" classname="fires the handler when you click the expand link">
    </testcase>
  </testsuite>
  <testsuite name="search form use" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FlickrSearch.test.js" failures="0" time="0.003">
    <testcase name="FlickrSearch search form use passes search term to search handler" time="0.001" classname="passes search term to search handler">
    </testcase>
    <testcase name="FlickrSearch search form use does not pass null/empty search term to search handler" time="0.001" classname="does not pass null/empty search term to search handler">
    </testcase>
    <testcase name="FlickrSearch search form use has no button if already searching" time="0.001" classname="has no button if already searching">
    </testcase>
  </testsuite>
  <testsuite name="with search results" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/FlickrSearch.test.js" failures="0" time="0.004">
    <testcase name="FlickrSearch search form use with search results renders results" time="0.001" classname="renders results">
    </testcase>
    <testcase name="FlickrSearch search form use with search results adds a flickr thumbnail signal to href" time="0.001" classname="adds a flickr thumbnail signal to href">
    </testcase>
    <testcase name="FlickrSearch search form use with search results handles a result click through callback" time="0.001" classname="handles a result click through callback">
    </testcase>
    <testcase name="FlickrSearch search form use with search results uses the correct image URL on the drag event" time="0.001" classname="uses the correct image URL on the drag event">
    </testcase>
  </testsuite>
  <testsuite name="ImagesPanel" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/ImagesPanel.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="rendering" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/ImagesPanel.test.js" failures="0" time="0.002">
    <testcase name="ImagesPanel rendering includes upload form if withUploadForm" time="0.001" classname="includes upload form if withUploadForm">
    </testcase>
    <testcase name="ImagesPanel rendering excludes upload form if withUploadForm is false" time="0.001" classname="excludes upload form if withUploadForm is false">
    </testcase>
  </testsuite>
  <testsuite name="ImageUploadsList" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/ImageUploadsList.test.js" failures="0" time="0.001">
    <testcase name="ImageUploadsList calls for images on mount" time="0.001" classname="calls for images on mount">
    </testcase>
  </testsuite>
  <testsuite name="LinkSet" timestamp="2019-08-27T19:39:04" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0.006">
    <testcase name="LinkSet prevents default event handling when clicked with handler" time="0.002" classname="prevents default event handling when clicked with handler">
    </testcase>
    <testcase name="LinkSet passes link data to provided onLinkClick when clicked" time="0" classname="passes link data to provided onLinkClick when clicked">
    </testcase>
    <testcase name="LinkSet does not throw on click when onLinkClick absent" time="0.001" classname="does not throw on click when onLinkClick absent">
    </testcase>
    <testcase name="LinkSet does not preventDefault on click when onLinkClick absent" time="0.001" classname="does not preventDefault on click when onLinkClick absent">
    </testcase>
    <testcase name="LinkSet calls fetchInitialPage on mount when provided" time="0.001" classname="calls fetchInitialPage on mount when provided">
    </testcase>
    <testcase name="LinkSet forwards fetchNextPage to LoadMore component" time="0.001" classname="forwards fetchNextPage to LoadMore component">
    </testcase>
  </testsuite>
  <testsuite name="rendering" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0">
    <testcase name="LinkSet rendering renders a button for each item" time="0" classname="renders a button for each item">
    </testcase>
  </testsuite>
  <testsuite name="non-empty" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0">
    <testcase name="LinkSet rendering non-empty renders the link list" time="0" classname="renders the link list">
    </testcase>
    <testcase name="LinkSet rendering non-empty does not render empty indicator" time="0" classname="does not render empty indicator">
    </testcase>
  </testsuite>
  <testsuite name="empty but might load more" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0">
    <testcase name="LinkSet rendering empty but might load more does not render link list" time="0" classname="does not render link list">
    </testcase>
    <testcase name="LinkSet rendering empty but might load more does not render empty indicator" time="0" classname="does not render empty indicator">
    </testcase>
  </testsuite>
  <testsuite name="empty and done loading" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0">
    <testcase name="LinkSet rendering empty and done loading does not render the link list" time="0" classname="does not render the link list">
    </testcase>
    <testcase name="LinkSet rendering empty and done loading renders empty indicator" time="0" classname="renders empty indicator">
    </testcase>
  </testsuite>
  <testsuite name="empty and failed loading" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0.001">
    <testcase name="LinkSet rendering empty and failed loading does not render the link list" time="0" classname="does not render the link list">
    </testcase>
    <testcase name="LinkSet rendering empty and failed loading renders loading error" time="0.001" classname="renders loading error">
    </testcase>
  </testsuite>
  <testsuite name="with fetchNextPage" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0.001">
    <testcase name="LinkSet rendering with fetchNextPage renders in LoadMore component if fetchNextPage provided" time="0.001" classname="renders in LoadMore component if fetchNextPage provided">
    </testcase>
  </testsuite>
  <testsuite name="without fetchNextPage" timestamp="2019-08-27T19:39:04" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0.001">
    <testcase name="LinkSet rendering without fetchNextPage renders without LoadMore component if fetchNextPage absent" time="0.001" classname="renders without LoadMore component if fetchNextPage absent">
    </testcase>
  </testsuite>
  <testsuite name="handleDragStart" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0">
    <testcase name="LinkSet handleDragStart calls dragHtml with event and link" time="0" classname="calls dragHtml with event and link">
    </testcase>
    <testcase name="LinkSet handleDragStart renders link" time="0" classname="renders link">
    </testcase>
    <testcase name="LinkSet handleDragStart is bound to onDragStart for rendered links" time="0" classname="is bound to onDragStart for rendered links">
    </testcase>
  </testsuite>
  <testsuite name="handleLoadMoreClick" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkSet.test.js" failures="0" time="0.001">
    <testcase name="LinkSet handleLoadMoreClick prevents default on event" time="0.001" classname="prevents default on event">
    </testcase>
    <testcase name="LinkSet handleLoadMoreClick calls fetch next page fn from props if set" time="0" classname="calls fetch next page fn from props if set">
    </testcase>
  </testsuite>
  <testsuite name="LinksPanel" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinksPanel.test.js" failures="0" time="0.002">
    <testcase name="LinksPanel binds collection name into child LinkSets&apos; fetchInitialPage" time="0.002" classname="binds collection name into child LinkSets&apos; fetchInitialPage">
    </testcase>
    <testcase name="LinksPanel binds collection name into child LinkSets&apos; fetchNextPage" time="0" classname="binds collection name into child LinkSets&apos; fetchNextPage">
    </testcase>
  </testsuite>
  <testsuite name="course context" timestamp="2019-08-27T19:39:04" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinksPanel.test.js" failures="0" time="0.002">
    <testcase name="LinksPanel course context has expected tabs" time="0" classname="has expected tabs">
    </testcase>
    <testcase name="LinksPanel course context mentions the course in linkToText" time="0" classname="mentions the course in linkToText">
    </testcase>
    <testcase name="LinksPanel course context has &apos;link to new page&apos; in Pages links" time="0.001" classname="has &apos;link to new page&apos; in Pages links">
    </testcase>
    <testcase name="LinksPanel course context does not have &apos;link to new page&apos; in Quizzes links" time="0.001" classname="does not have &apos;link to new page&apos; in Quizzes links">
    </testcase>
    <testcase name="LinksPanel course context does not have &apos;link to new page&apos; if not allowed for session" time="0" classname="does not have &apos;link to new page&apos; if not allowed for session">
    </testcase>
  </testsuite>
  <testsuite name="group context" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinksPanel.test.js" failures="0" time="0.001">
    <testcase name="LinksPanel group context skips Assigments, Quizzes, and Modules tabs" time="0" classname="skips Assigments, Quizzes, and Modules tabs">
    </testcase>
    <testcase name="LinksPanel group context has Group Navigation tab" time="0" classname="has Group Navigation tab">
    </testcase>
    <testcase name="LinksPanel group context mentions the group in linkToText" time="0" classname="mentions the group in linkToText">
    </testcase>
    <testcase name="LinksPanel group context has &apos;link to new page&apos; in Pages links" time="0.001" classname="has &apos;link to new page&apos; in Pages links">
    </testcase>
  </testsuite>
  <testsuite name="user context" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinksPanel.test.js" failures="0" time="0.001">
    <testcase name="LinksPanel user context only has Course Navigation tab" time="0" classname="only has Course Navigation tab">
    </testcase>
    <testcase name="LinksPanel user context it has no linkToText" time="0" classname="it has no linkToText">
    </testcase>
    <testcase name="LinksPanel user context does not have &apos;link to new page&apos; in CourseNavigation links" time="0.001" classname="does not have &apos;link to new page&apos; in CourseNavigation links">
    </testcase>
  </testsuite>
  <testsuite name="LinkToNewPage" timestamp="2019-08-27T19:39:04" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkToNewPage.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="form rendering" timestamp="2019-08-27T19:39:04" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkToNewPage.test.js" failures="0" time="0.002">
    <testcase name="LinkToNewPage form rendering renders form if expanded" time="0" classname="renders form if expanded">
    </testcase>
    <testcase name="LinkToNewPage form rendering is null if not expanded" time="0.001" classname="is null if not expanded">
    </testcase>
    <testcase name="LinkToNewPage form rendering fires the handler when you click the expand link" time="0.001" classname="fires the handler when you click the expand link">
    </testcase>
  </testsuite>
  <testsuite name="pageName form use" timestamp="2019-08-27T19:39:04" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkToNewPage.test.js" failures="0" time="0.002">
    <testcase name="LinkToNewPage pageName form use passes search page name to link embeder for courses" time="0.001" classname="passes search page name to link embeder for courses">
    </testcase>
    <testcase name="LinkToNewPage pageName form use passes search page name to link embeder for groups" time="0.001" classname="passes search page name to link embeder for groups">
    </testcase>
  </testsuite>
  <testsuite name="handle componentDidUpdate" timestamp="2019-08-27T19:39:04" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkToNewPage.test.js" failures="0" time="0.003">
    <testcase name="LinkToNewPage handle componentDidUpdate returns if elem is not expanded" time="0" classname="returns if elem is not expanded">
    </testcase>
    <testcase name="LinkToNewPage handle componentDidUpdate returns if pageInput not defined" time="0.001" classname="returns if pageInput not defined">
    </testcase>
    <testcase name="LinkToNewPage handle componentDidUpdate focuses and scrolls on component update" time="0.001" classname="focuses and scrolls on component update">
    </testcase>
    <testcase name="LinkToNewPage handle componentDidUpdate does not scroll on no form" time="0.001" classname="does not scroll on no form">
    </testcase>
  </testsuite>
  <testsuite name="scroll target validator" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/LinkToNewPage.test.js" failures="0" time="0.003">
    <testcase name="LinkToNewPage scroll target validator passes with target is scroll component" time="0.001" classname="passes with target is scroll component">
    </testcase>
    <testcase name="LinkToNewPage scroll target validator passes with target is window" time="0.001" classname="passes with target is window">
    </testcase>
    <testcase name="LinkToNewPage scroll target validator fails with parents already scrolled" time="0.001" classname="fails with parents already scrolled">
    </testcase>
    <testcase name="LinkToNewPage scroll target validator fails with no valid target" time="0" classname="fails with no valid target">
    </testcase>
  </testsuite>
  <testsuite name="NavigationPanel" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/NavigationPanel.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="course context" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/NavigationPanel.test.js" failures="0" time="0.001">
    <testcase name="NavigationPanel course context has expected links" time="0.001" classname="has expected links">
    </testcase>
    <testcase name="NavigationPanel course context is not loading more links" time="0" classname="is not loading more links">
    </testcase>
    <testcase name="NavigationPanel course context does not have more links" time="0" classname="does not have more links">
    </testcase>
    <testcase name="NavigationPanel course context uses the correct context id" time="0" classname="uses the correct context id">
    </testcase>
  </testsuite>
  <testsuite name="group context" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/NavigationPanel.test.js" failures="0" time="0.001">
    <testcase name="NavigationPanel group context skips Assigment List, Course Syllabus, Grades, and Modules links" time="0" classname="skips Assigment List, Course Syllabus, Grades, and Modules links">
    </testcase>
    <testcase name="NavigationPanel group context uses the correct context id" time="0.001" classname="uses the correct context id">
    </testcase>
  </testsuite>
  <testsuite name="user context" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/NavigationPanel.test.js" failures="0" time="0">
    <testcase name="NavigationPanel user context only has Files Index link" time="0" classname="only has Files Index link">
    </testcase>
    <testcase name="NavigationPanel user context uses the correct context id" time="0" classname="uses the correct context id">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/Sidebar.test.js" failures="0" time="0.004">
    <testcase name="Sidebar renders the panels when not hidden" time="0.002" classname="renders the panels when not hidden">
    </testcase>
    <testcase name="Sidebar does not render the file panel when filesTabDisabled is true" time="0.001" classname="does not render the file panel when filesTabDisabled is true">
    </testcase>
    <testcase name="Sidebar renders a hidden div when hidden" time="0.001" classname="renders a hidden div when hidden">
    </testcase>
  </testsuite>
  <testsuite name="disableFilesPanel()" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/Sidebar.test.js" failures="0" time="0.001">
    <testcase name="Sidebar disableFilesPanel() returns true if canUploadFiles is false and it has no files or folders" time="0" classname="returns true if canUploadFiles is false and it has no files or folders">
    </testcase>
    <testcase name="Sidebar disableFilesPanel() returns true if canUploadFiles is true and it has no files or folders" time="0.001" classname="returns true if canUploadFiles is true and it has no files or folders">
    </testcase>
    <testcase name="Sidebar disableFilesPanel() returns false if canUploadFiles is true and it has files" time="0" classname="returns false if canUploadFiles is true and it has files">
    </testcase>
    <testcase name="Sidebar disableFilesPanel() returns false if canUploadFiles is true and it has folders" time="0" classname="returns false if canUploadFiles is true and it has folders">
    </testcase>
  </testsuite>
  <testsuite name="UploadedImage" timestamp="2019-08-27T19:39:05" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadedImage.test.js" failures="0" time="0.003">
    <testcase name="UploadedImage renders an img for the result" time="0.001" classname="renders an img for the result">
    </testcase>
    <testcase name="UploadedImage handles drag start on link for firefox" time="0" classname="handles drag start on link for firefox">
    </testcase>
    <testcase name="UploadedImage calls back to provided function on click" time="0.001" classname="calls back to provided function on click">
    </testcase>
    <testcase name="UploadedImage uses the right url on drag events" time="0.001" classname="uses the right url on drag events">
    </testcase>
    <testcase name="UploadedImage uses display_name in image alt" time="0" classname="uses display_name in image alt">
    </testcase>
    <testcase name="UploadedImage uses display_name in image title" time="0" classname="uses display_name in image title">
    </testcase>
  </testsuite>
  <testsuite name="UploadForm" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="form rendering" timestamp="2019-08-27T19:39:05" tests="12" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0.011000000000000003">
    <testcase name="UploadForm form rendering renders form if expanded" time="0.002" classname="renders form if expanded">
    </testcase>
    <testcase name="UploadForm form rendering is blank if form collapsed" time="0.001" classname="is blank if form collapsed">
    </testcase>
    <testcase name="UploadForm form rendering uses aria-expanded to communicate collapsed state" time="0.002" classname="uses aria-expanded to communicate collapsed state">
    </testcase>
    <testcase name="UploadForm form rendering calls for folders on mounting" time="0.001" classname="calls for folders on mounting">
    </testcase>
    <testcase name="UploadForm form rendering toggles form on expand link click" time="0.001" classname="toggles form on expand link click">
    </testcase>
    <testcase name="UploadForm form rendering renders a Loading folders options when upload.loadingFolders is true" time="0.001" classname="renders a Loading folders options when upload.loadingFolders is true">
    </testcase>
    <testcase name="UploadForm form rendering renders an option per folder" time="0.001" classname="renders an option per folder">
    </testcase>
    <testcase name="UploadForm form rendering renders nested folders as options correctly" time="0.001" classname="renders nested folders as options correctly">
    </testcase>
    <testcase name="UploadForm form rendering renders even if folderTree is incomplete" time="0" classname="renders even if folderTree is incomplete">
    </testcase>
    <testcase name="UploadForm form rendering renders usage rights form if required" time="0.001" classname="renders usage rights form if required">
    </testcase>
    <testcase name="UploadForm form rendering does not render usage rights form is not required" time="0" classname="does not render usage rights form is not required">
    </testcase>
    <testcase name="UploadForm form rendering shows loading component if uploading is true" time="0" classname="shows loading component if uploading is true">
    </testcase>
  </testsuite>
  <testsuite name="form interaction" timestamp="2019-08-27T19:39:05" tests="11" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0.007">
    <testcase name="UploadForm form interaction uses the first folder if none is selected" time="0" classname="uses the first folder if none is selected">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button on initial display" time="0" classname="disables the upload button on initial display">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button with only a file selected" time="0" classname="disables the upload button with only a file selected">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button with only alt text resolved" time="0" classname="disables the upload button with only alt text resolved">
    </testcase>
    <testcase name="UploadForm form interaction enables the upload button once you choose a file and resolve alt text" time="0" classname="enables the upload button once you choose a file and resolve alt text">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button when canceling file choice" time="0.001" classname="disables the upload button when canceling file choice">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button when alt text resolution is reversed" time="0.001" classname="disables the upload button when alt text resolution is reversed">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button when form is collapsed" time="0.002" classname="disables the upload button when form is collapsed">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button when FilesPanel and no file selected" time="0.001" classname="disables the upload button when FilesPanel and no file selected">
    </testcase>
    <testcase name="UploadForm form interaction enables the upload button when FilesPanel and file is selected" time="0.001" classname="enables the upload button when FilesPanel and file is selected">
    </testcase>
    <testcase name="UploadForm form interaction disables the upload button when FilesPanel and file is canceled" time="0.001" classname="disables the upload button when FilesPanel and file is canceled">
    </testcase>
  </testsuite>
  <testsuite name="handleUpload()" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0.001">
    <testcase name="UploadForm handleUpload() gets value from usage rights form if it is rendered" time="0.001" classname="gets value from usage rights form if it is rendered">
    </testcase>
  </testsuite>
  <testsuite name="parentFolderId" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0">
    <testcase name="UploadForm parentFolderId returns parentFolderId from file state if exists" time="0" classname="returns parentFolderId from file state if exists">
    </testcase>
    <testcase name="UploadForm parentFolderId returns first folder if not in file state" time="0" classname="returns first folder if not in file state">
    </testcase>
    <testcase name="UploadForm parentFolderId returns null if there are no upload folders" time="0" classname="returns null if there are no upload folders">
    </testcase>
  </testsuite>
  <testsuite name="handleFolderChange" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0">
    <testcase name="UploadForm handleFolderChange prevents default on event" time="0" classname="prevents default on event">
    </testcase>
    <testcase name="UploadForm handleFolderChange sets parentFolderId in file state from event targets value" time="0" classname="sets parentFolderId in file state from event targets value">
    </testcase>
  </testsuite>
  <testsuite name="handleFileClick" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UploadForm.test.js" failures="0" time="0.002">
    <testcase name="UploadForm handleFileClick emptys the file state except for parentFolderId" time="0.001" classname="emptys the file state except for parentFolderId">
    </testcase>
    <testcase name="UploadForm handleFileClick returns selected folder if selected" time="0.001" classname="returns selected folder if selected">
    </testcase>
  </testsuite>
  <testsuite name="UsageRightsForm" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UsageRightsForm.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="render" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UsageRightsForm.test.js" failures="0" time="0.002">
    <testcase name="UsageRightsForm render renders alert if no right is selected" time="0.001" classname="renders alert if no right is selected">
    </testcase>
    <testcase name="UsageRightsForm render hides alert if right is selected" time="0.001" classname="hides alert if right is selected">
    </testcase>
    <testcase name="UsageRightsForm render renders cc select if right is creative commons" time="0" classname="renders cc select if right is creative commons">
    </testcase>
    <testcase name="UsageRightsForm render hides cc select if right is not creative commons" time="0" classname="hides cc select if right is not creative commons">
    </testcase>
  </testsuite>
  <testsuite name="events handlers" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UsageRightsForm.test.js" failures="0" time="0">
    <testcase name="UsageRightsForm events handlers handleUsageRight" time="0" classname="handleUsageRight">
    </testcase>
    <testcase name="UsageRightsForm events handlers handleCCLicense" time="0" classname="handleCCLicense">
    </testcase>
    <testcase name="UsageRightsForm events handlers handleCopyrightHolder" time="0" classname="handleCopyrightHolder">
    </testcase>
  </testsuite>
  <testsuite name="value" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/components/UsageRightsForm.test.js" failures="0" time="0">
    <testcase name="UsageRightsForm value returns null of usage right is not selected" time="0" classname="returns null of usage right is not selected">
    </testcase>
    <testcase name="UsageRightsForm value returns object with usage right and copyright holder" time="0" classname="returns object with usage right and copyright holder">
    </testcase>
    <testcase name="UsageRightsForm value has ccLicese if usage right is creative commons" time="0" classname="has ccLicese if usage right is creative commons">
    </testcase>
    <testcase name="UsageRightsForm value does not have ccLicense if usage right is not creative commons" time="0" classname="does not have ccLicense if usage right is not creative commons">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar container" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/containers/Sidebar.test.js" failures="0" time="0">
    <testcase name="Sidebar container passes the ui.hidden from the store to the Sidebar" time="0" classname="passes the ui.hidden from the store to the Sidebar">
    </testcase>
    <testcase name="Sidebar container passes the contextType from the store to the Sidebar" time="0" classname="passes the contextType from the store to the Sidebar">
    </testcase>
    <testcase name="Sidebar container passes the transformed collections from the store to the Sidebar" time="0" classname="passes the transformed collections from the store to the Sidebar">
    </testcase>
  </testsuite>
  <testsuite name="rendered container" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/containers/Sidebar.test.js" failures="0" time="0">
    <testcase name="Sidebar container rendered container passes a fetchInitialPage callback to the Sidebar" time="0" classname="passes a fetchInitialPage callback to the Sidebar">
    </testcase>
    <testcase name="Sidebar container rendered container passes a fetchNextPage callback to the Sidebar" time="0" classname="passes a fetchNextPage callback to the Sidebar">
    </testcase>
  </testsuite>
  <testsuite name="sidebarHandlers" timestamp="2019-08-27T19:39:05" tests="11" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/containers/sidebarHandlers.test.js" failures="0" time="0.007">
    <testcase name="sidebarHandlers ties ui change tab to store" time="0.001" classname="ties ui change tab to store">
    </testcase>
    <testcase name="sidebarHandlers ties ui change accordion to store" time="0" classname="ties ui change accordion to store">
    </testcase>
    <testcase name="sidebarHandlers ties data fetch initial page to store" time="0" classname="ties data fetch initial page to store">
    </testcase>
    <testcase name="sidebarHandlers ties data fetch next page to store" time="0" classname="ties data fetch next page to store">
    </testcase>
    <testcase name="sidebarHandlers ties files toggle folder to store" time="0.001" classname="ties files toggle folder to store">
    </testcase>
    <testcase name="sidebarHandlers ties upload fetch folders to store" time="0.001" classname="ties upload fetch folders to store">
    </testcase>
    <testcase name="sidebarHandlers ties images fetch images to store" time="0.001" classname="ties images fetch images to store">
    </testcase>
    <testcase name="sidebarHandlers ties upload preflight to store" time="0.001" classname="ties upload preflight to store">
    </testcase>
    <testcase name="sidebarHandlers ties flickr search to store" time="0.001" classname="ties flickr search to store">
    </testcase>
    <testcase name="sidebarHandlers ties toggle flickr form to store" time="0.001" classname="ties toggle flickr form to store">
    </testcase>
    <testcase name="sidebarHandlers ties toggle upload form to store" time="0" classname="ties toggle upload form to store">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar dragHtml" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/dragHtml.test.js" failures="0" time="0.001">
    <testcase name="Sidebar dragHtml defaults to setting the text/html data on the event" time="0.001" classname="defaults to setting the text/html data on the event">
    </testcase>
    <testcase name="Sidebar dragHtml sets encoded Text instead for non-Edge IE" time="0" classname="sets encoded Text instead for non-Edge IE">
    </testcase>
  </testsuite>
  <testsuite name="Edge" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/dragHtml.test.js" failures="0" time="0">
    <testcase name="Sidebar dragHtml Edge still uses the text/html data" time="0" classname="still uses the text/html data">
    </testcase>
    <testcase name="Sidebar dragHtml Edge clears the dataTransfer items" time="0" classname="clears the dataTransfer items">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar facade" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/facade.test.js" failures="0" time="0">
    <testcase name="Sidebar facade shows the sidebar on show()" time="0" classname="shows the sidebar on show()">
    </testcase>
    <testcase name="Sidebar facade hides the sidebar on hide()" time="0" classname="hides the sidebar on hide()">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar normalizeProps" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/normalizeProps.test.js" failures="0" time="0">
    <testcase name="Sidebar normalizeProps defaults onLinkClick to Bridge.insertLink" time="0" classname="defaults onLinkClick to Bridge.insertLink">
    </testcase>
    <testcase name="Sidebar normalizeProps allows overriding onLinkClick" time="0" classname="allows overriding onLinkClick">
    </testcase>
    <testcase name="Sidebar normalizeProps retains other props" time="0" classname="retains other props">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar reducer" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="REQUEST_PAGE" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers.test.js" failures="0" time="0.001">
    <testcase name="Sidebar reducer REQUEST_PAGE sets the loading flag on the appropriate collection" time="0.001" classname="sets the loading flag on the appropriate collection">
    </testcase>
    <testcase name="Sidebar reducer REQUEST_PAGE leaves the other collections alone" time="0" classname="leaves the other collections alone">
    </testcase>
    <testcase name="Sidebar reducer REQUEST_PAGE leaves non-collection keys alone" time="0" classname="leaves non-collection keys alone">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_PAGE" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers.test.js" failures="0" time="0">
    <testcase name="Sidebar reducer RECEIVE_PAGE appends results to the appropriate collection" time="0" classname="appends results to the appropriate collection">
    </testcase>
    <testcase name="Sidebar reducer RECEIVE_PAGE updates the bookmark on the appropriate collection" time="0" classname="updates the bookmark on the appropriate collection">
    </testcase>
    <testcase name="Sidebar reducer RECEIVE_PAGE clears the loading flag on the appropriate collection" time="0" classname="clears the loading flag on the appropriate collection">
    </testcase>
    <testcase name="Sidebar reducer RECEIVE_PAGE leaves the other collections alone" time="0" classname="leaves the other collections alone">
    </testcase>
  </testsuite>
  <testsuite name="FAIL_PAGE" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers.test.js" failures="0" time="0">
    <testcase name="Sidebar reducer FAIL_PAGE clears the loading flag on the appropriate collection" time="0" classname="clears the loading flag on the appropriate collection">
    </testcase>
    <testcase name="Sidebar reducer FAIL_PAGE clears the bookmark if the links are empty" time="0" classname="clears the bookmark if the links are empty">
    </testcase>
    <testcase name="Sidebar reducer FAIL_PAGE leaves the links and bookmark on that collection alone otherwise" time="0" classname="leaves the links and bookmark on that collection alone otherwise">
    </testcase>
    <testcase name="Sidebar reducer FAIL_PAGE leaves the other collections alone" time="0" classname="leaves the other collections alone">
    </testcase>
  </testsuite>
  <testsuite name="Collection reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/collection.test.js" failures="0" time="0">
    <testcase name="Collection reducer does not modify the state if for unknown actions" time="0" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="REQUEST_PAGE" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/collection.test.js" failures="0" time="0">
    <testcase name="Collection reducer REQUEST_PAGE sets the loading flag" time="0" classname="sets the loading flag">
    </testcase>
    <testcase name="Collection reducer REQUEST_PAGE preserves existing state" time="0" classname="preserves existing state">
    </testcase>
  </testsuite>
  <testsuite name="FAIL_PAGE" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/collection.test.js" failures="0" time="0">
    <testcase name="Collection reducer FAIL_PAGE deactivates loading" time="0" classname="deactivates loading">
    </testcase>
    <testcase name="Collection reducer FAIL_PAGE includes the error in state" time="0" classname="includes the error in state">
    </testcase>
    <testcase name="Collection reducer FAIL_PAGE blanks the bookmark if there are no links" time="0" classname="blanks the bookmark if there are no links">
    </testcase>
    <testcase name="Collection reducer FAIL_PAGE leaves the bookmark when links are present" time="0" classname="leaves the bookmark when links are present">
    </testcase>
  </testsuite>
  <testsuite name="Files reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/files.test.js" failures="0" time="0">
    <testcase name="Files reducer does not modify the state if for unknown actions" time="0" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="ADD_FILE" timestamp="2019-08-27T19:39:05" tests="7" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/files.test.js" failures="0" time="0">
    <testcase name="Files reducer ADD_FILE adds a new property to files keyed by id from action" time="0" classname="adds a new property to files keyed by id from action">
    </testcase>
    <testcase name="Files reducer ADD_FILE sets id from action" time="0" classname="sets id from action">
    </testcase>
    <testcase name="Files reducer ADD_FILE sets name from action" time="0" classname="sets name from action">
    </testcase>
    <testcase name="Files reducer ADD_FILE sets type from action fileType" time="0" classname="sets type from action fileType">
    </testcase>
    <testcase name="Files reducer ADD_FILE sets url from action" time="0" classname="sets url from action">
    </testcase>
    <testcase name="Files reducer ADD_FILE sets embed from action" time="0" classname="sets embed from action">
    </testcase>
    <testcase name="Files reducer ADD_FILE keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="Flickr reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/flickr.test.js" failures="0" time="0">
    <testcase name="Flickr reducer does not modify the state if for unknown actions" time="0" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="START_FLICKR_SEARCH" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/flickr.test.js" failures="0" time="0">
    <testcase name="Flickr reducer START_FLICKR_SEARCH sets searching to true" time="0" classname="sets searching to true">
    </testcase>
    <testcase name="Flickr reducer START_FLICKR_SEARCH sets term from action" time="0" classname="sets term from action">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_FLICKR_RESULTS" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/flickr.test.js" failures="0" time="0">
    <testcase name="Flickr reducer RECEIVE_FLICKR_RESULTS turns searching off" time="0" classname="turns searching off">
    </testcase>
    <testcase name="Flickr reducer RECEIVE_FLICKR_RESULTS passes results through for display" time="0" classname="passes results through for display">
    </testcase>
  </testsuite>
  <testsuite name="FAIL_FLICKR_SEARCH" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/flickr.test.js" failures="0" time="0">
    <testcase name="Flickr reducer FAIL_FLICKR_SEARCH disables searching flag" time="0" classname="disables searching flag">
    </testcase>
    <testcase name="Flickr reducer FAIL_FLICKR_SEARCH blanks the search term" time="0" classname="blanks the search term">
    </testcase>
    <testcase name="Flickr reducer FAIL_FLICKR_SEARCH empties the search results" time="0" classname="empties the search results">
    </testcase>
    <testcase name="Flickr reducer FAIL_FLICKR_SEARCH leaves the form state as it is" time="0" classname="leaves the form state as it is">
    </testcase>
  </testsuite>
  <testsuite name="TOGGLE_FLICKR_FORM" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/flickr.test.js" failures="0" time="0">
    <testcase name="Flickr reducer TOGGLE_FLICKR_FORM reverses current state" time="0" classname="reverses current state">
    </testcase>
    <testcase name="Flickr reducer TOGGLE_FLICKR_FORM goes back and forth for each invocation" time="0" classname="goes back and forth for each invocation">
    </testcase>
  </testsuite>
  <testsuite name="Folder sidebar reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0.001">
    <testcase name="Folder sidebar reducer does not modify the state if for unknown actions" time="0.001" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="ADD_FOLDER" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0">
    <testcase name="Folder sidebar reducer ADD_FOLDER sets id from action" time="0" classname="sets id from action">
    </testcase>
    <testcase name="Folder sidebar reducer ADD_FOLDER sets name from action" time="0" classname="sets name from action">
    </testcase>
    <testcase name="Folder sidebar reducer ADD_FOLDER sets filesUrl from action" time="0" classname="sets filesUrl from action">
    </testcase>
    <testcase name="Folder sidebar reducer ADD_FOLDER sets foldersUrl from action" time="0" classname="sets foldersUrl from action">
    </testcase>
    <testcase name="Folder sidebar reducer ADD_FOLDER keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_FILES" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0">
    <testcase name="Folder sidebar reducer RECEIVE_FILES decrements loadingCount" time="0" classname="decrements loadingCount">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_FILES sets loading to true if next loadingCount is not 0" time="0" classname="sets loading to true if next loadingCount is not 0">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_FILES sets loading to false if next loadingCount is 0" time="0" classname="sets loading to false if next loadingCount is 0">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_FILES adds fileIds from action to existing fileIds" time="0" classname="adds fileIds from action to existing fileIds">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_FILES keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_SUBFOLDERS" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0">
    <testcase name="Folder sidebar reducer RECEIVE_SUBFOLDERS decrements loadingCount" time="0" classname="decrements loadingCount">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_SUBFOLDERS sets loading to true if next loadingCount is not 0" time="0" classname="sets loading to true if next loadingCount is not 0">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_SUBFOLDERS sets loading to false if next loadingCount is 0" time="0" classname="sets loading to false if next loadingCount is 0">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_SUBFOLDERS adds folderIds from action to existing folderIds" time="0" classname="adds folderIds from action to existing folderIds">
    </testcase>
    <testcase name="Folder sidebar reducer RECEIVE_SUBFOLDERS keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="REQUEST_FILES" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0">
    <testcase name="Folder sidebar reducer REQUEST_FILES sets requested to true" time="0" classname="sets requested to true">
    </testcase>
    <testcase name="Folder sidebar reducer REQUEST_FILES increments loadingCount" time="0" classname="increments loadingCount">
    </testcase>
    <testcase name="Folder sidebar reducer REQUEST_FILES sets loading to true if next loadingCount is not 0" time="0" classname="sets loading to true if next loadingCount is not 0">
    </testcase>
    <testcase name="Folder sidebar reducer REQUEST_FILES keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="REQUEST_SUBFOLDERS" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0">
    <testcase name="Folder sidebar reducer REQUEST_SUBFOLDERS sets requested to true" time="0" classname="sets requested to true">
    </testcase>
    <testcase name="Folder sidebar reducer REQUEST_SUBFOLDERS increments loadingCount" time="0" classname="increments loadingCount">
    </testcase>
    <testcase name="Folder sidebar reducer REQUEST_SUBFOLDERS sets loading to true if next loadingCount is not 0" time="0" classname="sets loading to true if next loadingCount is not 0">
    </testcase>
    <testcase name="Folder sidebar reducer REQUEST_SUBFOLDERS keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="TOGGLE" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folder.test.js" failures="0" time="0">
    <testcase name="Folder sidebar reducer TOGGLE sets expanded to true if it was false" time="0" classname="sets expanded to true if it was false">
    </testcase>
    <testcase name="Folder sidebar reducer TOGGLE sets expanded to false if it was true" time="0" classname="sets expanded to false if it was true">
    </testcase>
    <testcase name="Folder sidebar reducer TOGGLE keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
  </testsuite>
  <testsuite name="Folders reducer" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folders.test.js" failures="0" time="0.002">
    <testcase name="Folders reducer does not proxy unknown actions" time="0.001" classname="does not proxy unknown actions">
    </testcase>
    <testcase name="Folders reducer does not modify the state if for unknown actions" time="0.001" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="proxies actions for property by action id to folder" timestamp="2019-08-27T19:39:05" tests="6" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/folders.test.js" failures="0" time="0">
    <testcase name="Folders reducer proxies actions for property by action id to folder ADD_FOLDER" time="0" classname="ADD_FOLDER">
    </testcase>
    <testcase name="Folders reducer proxies actions for property by action id to folder RECEIVE_FILES" time="0" classname="RECEIVE_FILES">
    </testcase>
    <testcase name="Folders reducer proxies actions for property by action id to folder RECEIVE_SUBFOLDERS" time="0" classname="RECEIVE_SUBFOLDERS">
    </testcase>
    <testcase name="Folders reducer proxies actions for property by action id to folder REQUEST_FILES" time="0" classname="REQUEST_FILES">
    </testcase>
    <testcase name="Folders reducer proxies actions for property by action id to folder REQUEST_SUBFOLDERS" time="0" classname="REQUEST_SUBFOLDERS">
    </testcase>
    <testcase name="Folders reducer proxies actions for property by action id to folder TOGGLE" time="0" classname="TOGGLE">
    </testcase>
  </testsuite>
  <testsuite name="Images reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/images.test.js" failures="0" time="0">
    <testcase name="Images reducer does not modify the state if for unknown actions" time="0" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="ADD_IMAGE" timestamp="2019-08-27T19:39:05" tests="7" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/images.test.js" failures="0" time="0">
    <testcase name="Images reducer ADD_IMAGE adds a new object to images array" time="0" classname="adds a new object to images array">
    </testcase>
    <testcase name="Images reducer ADD_IMAGE sets id from action" time="0" classname="sets id from action">
    </testcase>
    <testcase name="Images reducer ADD_IMAGE sets filename from action" time="0" classname="sets filename from action">
    </testcase>
    <testcase name="Images reducer ADD_IMAGE sets display_name from action display_name" time="0" classname="sets display_name from action display_name">
    </testcase>
    <testcase name="Images reducer ADD_IMAGE sets preview_url from action preview_url" time="0" classname="sets preview_url from action preview_url">
    </testcase>
    <testcase name="Images reducer ADD_IMAGE sets thumbnail_url from action thumbnail_url" time="0" classname="sets thumbnail_url from action thumbnail_url">
    </testcase>
    <testcase name="Images reducer ADD_IMAGE sets href from action preview_url" time="0" classname="sets href from action preview_url">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_IMAGES" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/images.test.js" failures="0" time="0">
    <testcase name="Images reducer RECEIVE_IMAGES appends new records to the existing array" time="0" classname="appends new records to the existing array">
    </testcase>
    <testcase name="Images reducer RECEIVE_IMAGES hasMore if there&apos;s a bookmark" time="0" classname="hasMore if there&apos;s a bookmark">
    </testcase>
    <testcase name="Images reducer RECEIVE_IMAGES clears isLoading state" time="0" classname="clears isLoading state">
    </testcase>
  </testsuite>
  <testsuite name="REQUEST_IMAGES" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/images.test.js" failures="0" time="0">
    <testcase name="Images reducer REQUEST_IMAGES marks images as loading" time="0" classname="marks images as loading">
    </testcase>
    <testcase name="Images reducer REQUEST_IMAGES sets requested to true" time="0" classname="sets requested to true">
    </testcase>
  </testsuite>
  <testsuite name="Session reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/session.test.js" failures="0" time="0">
    <testcase name="Session reducer returns the original state if called with other action" time="0" classname="returns the original state if called with other action">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_SESSION action" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/session.test.js" failures="0" time="0">
    <testcase name="Session reducer RECEIVE_SESSION action merges action data with existing state" time="0" classname="merges action data with existing state">
    </testcase>
  </testsuite>
  <testsuite name="UI reducer" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/ui.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="hidden flag" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/ui.test.js" failures="0" time="0.002">
    <testcase name="UI reducer hidden flag is cleared on showSidebar" time="0.001" classname="is cleared on showSidebar">
    </testcase>
    <testcase name="UI reducer hidden flag is cleared on resetUI" time="0.001" classname="is cleared on resetUI">
    </testcase>
    <testcase name="UI reducer hidden flag is set on hideSidebar" time="0" classname="is set on hideSidebar">
    </testcase>
  </testsuite>
  <testsuite name="Upload reducer" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer does not modify the state if for unknown actions" time="0" classname="does not modify the state if for unknown actions">
    </testcase>
  </testsuite>
  <testsuite name="START_FILE_UPLOAD" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer START_FILE_UPLOAD sets uploading to true" time="0" classname="sets uploading to true">
    </testcase>
  </testsuite>
  <testsuite name="COMPLETE_FILE_UPLOAD" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0.001">
    <testcase name="Upload reducer COMPLETE_FILE_UPLOAD turns uploading off" time="0.001" classname="turns uploading off">
    </testcase>
    <testcase name="Upload reducer COMPLETE_FILE_UPLOAD collapses the form" time="0" classname="collapses the form">
    </testcase>
    <testcase name="Upload reducer COMPLETE_FILE_UPLOAD resets the error state" time="0" classname="resets the error state">
    </testcase>
  </testsuite>
  <testsuite name="FAIL_FILE_UPLOAD" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0.001">
    <testcase name="Upload reducer FAIL_FILE_UPLOAD disables uploading flag" time="0.001" classname="disables uploading flag">
    </testcase>
    <testcase name="Upload reducer FAIL_FILE_UPLOAD leaves the form state as it is" time="0" classname="leaves the form state as it is">
    </testcase>
  </testsuite>
  <testsuite name="QUOTA_EXCEEDED_UPLOAD" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer QUOTA_EXCEEDED_UPLOAD sets the error state type to QUOTA_EXCEEDED_UPLOAD" time="0" classname="sets the error state type to QUOTA_EXCEEDED_UPLOAD">
    </testcase>
    <testcase name="Upload reducer QUOTA_EXCEEDED_UPLOAD sets the uploading state the false" time="0" classname="sets the uploading state the false">
    </testcase>
  </testsuite>
  <testsuite name="RECEIVE_FOLDER" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer RECEIVE_FOLDER adds a new property to folders keyed by id from action" time="0" classname="adds a new property to folders keyed by id from action">
    </testcase>
    <testcase name="Upload reducer RECEIVE_FOLDER sets id from action" time="0" classname="sets id from action">
    </testcase>
    <testcase name="Upload reducer RECEIVE_FOLDER sets name from action" time="0" classname="sets name from action">
    </testcase>
    <testcase name="Upload reducer RECEIVE_FOLDER keeps existing properties" time="0" classname="keeps existing properties">
    </testcase>
    <testcase name="Upload reducer RECEIVE_FOLDER sets the root folder id" time="0" classname="sets the root folder id">
    </testcase>
  </testsuite>
  <testsuite name="FAIL_FOLDERS_LOAD" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer FAIL_FOLDERS_LOAD empties the folders data" time="0" classname="empties the folders data">
    </testcase>
    <testcase name="Upload reducer FAIL_FOLDERS_LOAD sets loadingFolders to false" time="0" classname="sets loadingFolders to false">
    </testcase>
  </testsuite>
  <testsuite name="TOGGLE_UPLOAD_FORM" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer TOGGLE_UPLOAD_FORM reverses current state" time="0" classname="reverses current state">
    </testcase>
    <testcase name="Upload reducer TOGGLE_UPLOAD_FORM goes back and forth for each invocation" time="0" classname="goes back and forth for each invocation">
    </testcase>
  </testsuite>
  <testsuite name="PROCESSED_FOLDER_BATCH" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer PROCESSED_FOLDER_BATCH builds a folder tree with sorting" time="0" classname="builds a folder tree with sorting">
    </testcase>
  </testsuite>
  <testsuite name="START_LOADING" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer START_LOADING sets loadingFolders to true" time="0" classname="sets loadingFolders to true">
    </testcase>
  </testsuite>
  <testsuite name="STOP_LOADING" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/reducers/upload.test.js" failures="0" time="0">
    <testcase name="Upload reducer STOP_LOADING sets loadingFolders to false" time="0" classname="sets loadingFolders to false">
    </testcase>
  </testsuite>
  <testsuite name="sources/api" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="initializeCollection" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
    <testcase name="sources/api initializeCollection creates a collection with no links" time="0" classname="creates a collection with no links">
    </testcase>
    <testcase name="sources/api initializeCollection creates a collection with a bookmark derived from props" time="0" classname="creates a collection with a bookmark derived from props">
    </testcase>
    <testcase name="sources/api initializeCollection bookmark omits host if not in props" time="0" classname="bookmark omits host if not in props">
    </testcase>
    <testcase name="sources/api initializeCollection creates a collection that is not initially loading" time="0" classname="creates a collection that is not initially loading">
    </testcase>
  </testsuite>
  <testsuite name="initializeImages" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
    <testcase name="sources/api initializeImages sets requested to false" time="0" classname="sets requested to false">
    </testcase>
  </testsuite>
  <testsuite name="URI construction" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
    <testcase name="sources/api URI construction uses a protocol relative url when no window" time="0" classname="uses a protocol relative url when no window">
    </testcase>
    <testcase name="sources/api URI construction uses a path for no-host url construction" time="0" classname="uses a path for no-host url construction">
    </testcase>
    <testcase name="sources/api URI construction gets protocol from window if available" time="0" classname="gets protocol from window if available">
    </testcase>
    <testcase name="sources/api URI construction never applies protocol to path" time="0" classname="never applies protocol to path">
    </testcase>
    <testcase name="sources/api URI construction will replace protocol if there&apos;s a mismatch from http to https" time="0" classname="will replace protocol if there&apos;s a mismatch from http to https">
    </testcase>
  </testsuite>
  <testsuite name="fetchPage" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0.004">
    <testcase name="sources/api fetchPage includes jwt in Authorization header" time="0.001" classname="includes jwt in Authorization header">
    </testcase>
    <testcase name="sources/api fetchPage converts 400+ statuses to errors" time="0.001" classname="converts 400+ statuses to errors">
    </testcase>
    <testcase name="sources/api fetchPage parses server response before handing it back" time="0" classname="parses server response before handing it back">
    </testcase>
    <testcase name="sources/api fetchPage can parse while-wrapped page data" time="0.001" classname="can parse while-wrapped page data">
    </testcase>
    <testcase name="sources/api fetchPage retries once on 401 with a renewed token" time="0.001" classname="retries once on 401 with a renewed token">
    </testcase>
  </testsuite>
  <testsuite name="fetchFiles" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
    <testcase name="sources/api fetchFiles proxies the call to fetchPage" time="0" classname="proxies the call to fetchPage">
    </testcase>
    <testcase name="sources/api fetchFiles converts file urls from download to preview" time="0" classname="converts file urls from download to preview">
    </testcase>
  </testsuite>
  <testsuite name="preflightUpload" timestamp="2019-08-27T19:39:05" tests="3" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0.002">
    <testcase name="sources/api preflightUpload includes jwt in Authorization header" time="0.001" classname="includes jwt in Authorization header">
    </testcase>
    <testcase name="sources/api preflightUpload retries once with fresh token on 401" time="0.001" classname="retries once with fresh token on 401">
    </testcase>
    <testcase name="sources/api preflightUpload notifies a provided callback when a new token is fetched" time="0" classname="notifies a provided callback when a new token is fetched">
    </testcase>
  </testsuite>
  <testsuite name="uploadFRD" timestamp="2019-08-27T19:39:05" tests="0" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
  </testsuite>
  <testsuite name="files" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0.005">
    <testcase name="sources/api uploadFRD files includes credentials in non-S3 upload" time="0.002" classname="includes credentials in non-S3 upload">
    </testcase>
    <testcase name="sources/api uploadFRD files does not include credentials in S3 upload" time="0" classname="does not include credentials in S3 upload">
    </testcase>
    <testcase name="sources/api uploadFRD files converts returned file url from download to wrap" time="0.001" classname="converts returned file url from download to wrap">
    </testcase>
    <testcase name="sources/api uploadFRD files handles s3 post-flight" time="0.001" classname="handles s3 post-flight">
    </testcase>
    <testcase name="sources/api uploadFRD files handles inst-fs post-flight" time="0.001" classname="handles inst-fs post-flight">
    </testcase>
  </testsuite>
  <testsuite name="images" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
    <testcase name="sources/api uploadFRD images converts returned image url from download to wrap" time="0" classname="converts returned image url from download to wrap">
    </testcase>
  </testsuite>
  <testsuite name="api mapping" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0.002">
    <testcase name="sources/api api mapping can fetch folders" time="0.001" classname="can fetch folders">
    </testcase>
    <testcase name="sources/api api mapping requests images from API" time="0.001" classname="requests images from API">
    </testcase>
  </testsuite>
  <testsuite name="getSession" timestamp="2019-08-27T19:39:05" tests="1" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0">
    <testcase name="sources/api getSession includes jwt in Authorization header" time="0" classname="includes jwt in Authorization header">
    </testcase>
  </testsuite>
  <testsuite name="setUsageRights" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0.002">
    <testcase name="sources/api setUsageRights includes jwt in Authorization header" time="0.001" classname="includes jwt in Authorization header">
    </testcase>
    <testcase name="sources/api setUsageRights posts file id and usage rights to the api" time="0.001" classname="posts file id and usage rights to the api">
    </testcase>
  </testsuite>
  <testsuite name="getFile" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/sources/api.test.js" failures="0" time="0.004">
    <testcase name="sources/api getFile includes jwt in Authorization header" time="0.001" classname="includes jwt in Authorization header">
    </testcase>
    <testcase name="sources/api getFile retries once with fresh token on 401" time="0" classname="retries once with fresh token on 401">
    </testcase>
    <testcase name="sources/api getFile notifies a provided callback when a new token is fetched" time="0.001" classname="notifies a provided callback when a new token is fetched">
    </testcase>
    <testcase name="sources/api getFile transforms file url with downloadToWrap" time="0.001" classname="transforms file url with downloadToWrap">
    </testcase>
    <testcase name="sources/api getFile defaults display_name to name" time="0.001" classname="defaults display_name to name">
    </testcase>
  </testsuite>
  <testsuite name="initialActions" timestamp="2019-08-27T19:39:05" tests="2" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/store/initialActions.test.js" failures="0" time="0">
    <testcase name="initialActions dispatches get session" time="0" classname="dispatches get session">
    </testcase>
    <testcase name="initialActions dispatches files init" time="0" classname="dispatches files init">
    </testcase>
  </testsuite>
  <testsuite name="Sidebar initialState" timestamp="2019-08-27T19:39:05" tests="5" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/store/initialState.test.js" failures="0" time="0.002">
    <testcase name="Sidebar initialState accepts provided contextType" time="0" classname="accepts provided contextType">
    </testcase>
    <testcase name="Sidebar initialState normalizes provided contextType" time="0" classname="normalizes provided contextType">
    </testcase>
    <testcase name="Sidebar initialState accepts provided jwt" time="0.001" classname="accepts provided jwt">
    </testcase>
    <testcase name="Sidebar initialState accepts provided source" time="0.001" classname="accepts provided source">
    </testcase>
    <testcase name="Sidebar initialState accepts provided collections" time="0" classname="accepts provided collections">
    </testcase>
  </testsuite>
  <testsuite name="defaults" timestamp="2019-08-27T19:39:05" tests="4" file="/Users/ryan/code/canvas-lms/packages/canvas-rce/test/sidebar/store/initialState.test.js" failures="0" time="0">
    <testcase name="Sidebar initialState defaults contextType to undefined" time="0" classname="contextType to undefined">
    </testcase>
    <testcase name="Sidebar initialState defaults jwt to undefined" time="0" classname="jwt to undefined">
    </testcase>
    <testcase name="Sidebar initialState defaults source to the api source" time="0" classname="source to the api source">
    </testcase>
    <testcase name="Sidebar initialState defaults initial collections using source" time="0" classname="initial collections using source">
    </testcase>
  </testsuite>
</testsuites>