QA/Firefox3.5/Video And Audio TestPlan: Difference between revisions

no edit summary
No edit summary
Line 8: Line 8:
= Overview =
= Overview =
Video and audio HTML 5 suport has landed on trunk for the 3.1 release.  It implements the [http://www.whatwg.org/specs/web-apps/current-work/#video WHATWG specification] for these tags.  So, far, only the ogg-theora codec support has landed.  However, the tests below must be tested with each codec supported unless otherwise noted.
Video and audio HTML 5 suport has landed on trunk for the 3.1 release.  It implements the [http://www.whatwg.org/specs/web-apps/current-work/#video WHATWG specification] for these tags.  So, far, only the ogg-theora codec support has landed.  However, the tests below must be tested with each codec supported unless otherwise noted.
Likewise, everywhere that "video" is used, it is also assumed that audio will be tested for the same test, except in those cases where it doesn't make sense for this to occur.


= Test Strategy =
= Test Strategy =
Line 14: Line 16:
* What should be done to test around the area of the feature and its interoperability with other HTML content
* What should be done to test around the area of the feature and its interoperability with other HTML content
* What might be done in a wonderful perfect world i.e. less important stuff that might get timeboxed)
* What might be done in a wonderful perfect world i.e. less important stuff that might get timeboxed)
;Test Legend
For Test Type, we use:
* L - Litmus
* G - Gristmill
* M - Mochitest
* R - Reftest
* ? - TBD
For Test Status, we use:
* ? - TBD (also indicates that this test idea might be complete foolishness - has not been sized yet at all)
* D - Done - test written and checked in. If possible, "D" will be a link to the test in MXR or Litmus
* I - In Progress - test written, but not checked in (awaiting review, for instance).  The "I" should be a link to the bug where it is awaiting review.
* ' '  (blank) - Indicates that the test has not been written, but it was decided that this is a test we '''will''' be writing, i.e. it is not complete foolishness.


== Things that Must be Done ==
== Things that Must be Done ==
Line 20: Line 36:
|-
|-
| class="header"|Test Idea
| class="header"|Test Idea
| class="header"|Test Type
| class="header"|Status
| class="header"|Status
|-
|-
| Analyze the unit tests to ensure they test all default values of the attributes
| Analyze the unit tests to ensure they test all default values of the attributes
| ?
| ?
| ?
|-
|-
| Test autoplay toggle to determine if the controls appear and that the controls appear properly
| Test autoplay toggle to determine if the controls appear and that the controls appear properly
| ?
| ?
| ?
|-
|-
| Change the controls to something of our own creation
| Change the controls to something of our own creation
| ?
| ?
| ?
|-
|-
| Use Video to animate objects and place as a background to content
| Use Video to animate objects and place as a background to content
| ?
| ?
| ?
|-
|-
| test dragging video to a new window and that it doesn't stop playing (via tab drag)
| test dragging video to a new window and that it doesn't stop playing (via tab drag)
| ?
| ?
| ?
|-
|-
| Test that it continues to play (or doesn't play - current behavior is to continue) when you switch to a new tab.
| Test that it continues to play (or doesn't play - current behavior is to continue) when you switch to a new tab.
| ?
| ?
| ?
|-
|-
| Test accessibility of the video/audio controls
| Test accessibility of the video/audio controls
| ?
| ?
| ?
|-
|-
| Test that the controls work properly (litmus? gristmill?)
| Test that the controls work properly (litmus? gristmill?)
| ?
| ?
| ?
|-
|-
| Test automatically removing controls from javascript - would this be a bug?
| Test automatically removing controls from javascript - would this be a bug?
| ?
| ?
| ?
|-
|-
| Use javascript events to override the volume control set by the user (should not be able to do this, I think, considering how much we hate the ads on tv that do this)
| Use javascript events to override the volume control set by the user (should not be able to do this, I think, considering how much we hate the ads on tv that do this)
| ?
| ?
| ?
|-
|-
| Test that playback of both formats stops on closing the tab
| Test that playback of both formats stops on closing the tab
| ?
| ?
| ?
|-
|-
| Test that reload of page causes both to restart
| Test that reload of page causes both to restart
| ?
| ?
| ?
|-
|-
| Test that back/forward work as expected (video back to beginning)
| Test that back/forward work as expected (video back to beginning)
| ?
| ?
| ?
|-
|-
| Test that Session restore should restore the original state of the video, not the mid-point where it was when you crashed. (I think).
| Test that Session restore should restore the original state of the video, not the mid-point where it was when you crashed. (I think).
| ?
| ?
| ?
|-
|-
| Test attaching javascript event listeners to the controls themselves.  They should not really be able to take over a control, for example, you could move the control every time the mouse hovered over it making it impossible to stop the video
| Test attaching javascript event listeners to the controls themselves.  They should not really be able to take over a control, for example, you could move the control every time the mouse hovered over it making it impossible to stop the video
| ?
| ?
| ?
|-
|-
| Test playing a large video that must be buffered.  Ensure the buffering works properly
| Test playing a large video that must be buffered.  Ensure the buffering works properly
| ?
| ?
| ?
|-
|-
| Ensure the poster setting works properly, that seek offsets can be used well.
| Ensure the poster setting works properly, that seek offsets can be used well.
| ?
| ?
| ?
|-
|-
| Ensure that save page as functionality works and downloads the video/audio as well as the HTML
| Ensure that save page as functionality works and downloads the video/audio as well as the HTML
| ?
| ?
| ?
|-
|-
Line 82: Line 117:
|-
|-
| class="header"|Test Idea
| class="header"|Test Idea
| class="header"|Test Type
| class="header"|Status
| class="header"|Status
|-
|-
| Test mimetypes, and test that we handle them by default when they are detected, if we want to do that
| Test mimetypes, and test that we handle them by default when they are detected, if we want to do that
| ?
| ?
| ?
|-
|-
| Try to test if we can unsync the video and audio
| Try to test if we can unsync the video and audio
| ?
| ?
| ?
|-
|-
| Change the framerate, ensure video playback changes
| Change the framerate, ensure video playback changes
| ?
| ?
| ?
|-
|-
| Give an invalid mime type for the provided file (when the file is a codec we support
| Give an invalid mime type for the provided file (when the file is a codec we support
| ?
| ?
| ?
|-
|-
| Give a valid mime type when the file isn't a codec we support
| Give a valid mime type when the file isn't a codec we support
| ?
| ?
| ?
|-
|-
| Give an incorrect,but supported, mime type for a file that is a supported codec
| Give an incorrect,but supported, mime type for a file that is a supported codec
| ?
| ?
| ?
|-
|-
| Test for any relevant events - video stop/start/resume/reset etc
| Test for any relevant events - video stop/start/resume/reset etc
| ?
| ?
| ?
|}
|}
Line 111: Line 154:
|-
|-
| class="header"|Test Idea
| class="header"|Test Idea
| class="header"|Test Type
| class="header"|Status
| class="header"|Status
|-
|-
Line 120: Line 164:
* have the area surrounding a video be determined by an inherited CSS string that is changed after the page loads and autoplay begins such that the new size is too small for the video
* have the area surrounding a video be determined by an inherited CSS string that is changed after the page loads and autoplay begins such that the new size is too small for the video
* do above case and just keep the same size, and ensure the page changes and reflow happens but video doesn't restart
* do above case and just keep the same size, and ensure the page changes and reflow happens but video doesn't restart
| ?
| ?
| ?
|-
|-
| Can we style the page differently based on video states of play or pause or stop?
| Can we style the page differently based on video states of play or pause or stop?
| ?
| ?
| ?
|}
|}


=== Leak/Thread/Crash Testing ===
=== Leak/Thread/Crash Testing ===
{| class-"standard-table"
{| class="standard-table"
|-
|-
| class="header"|Test Idea
| class="header"|Test Idea
| class="header"|Test Type
| class="header"|Status
| class="header"|Status
|-
|-
| Test using a completely contained video (i.e. file local on server)
| Test using a completely contained video (i.e. file local on server)
| ?
| ?
| ?
|-
|-
| Test using a buffered file
| Test using a buffered file
| ?
| ?
| ?
|-
|-
| Test ten videos all in their own tabs and/or windows, playing simultaneously
| Test ten videos all in their own tabs and/or windows, playing simultaneously
| ?
| ?
| ?
|-
|-
| Test ten videos all on the same page, playing simultaneously in different codecs
| Test ten videos all on the same page, playing simultaneously in different codecs
| ?
| ?
| ?
|-
|-
| Test ten videos all on the same page, playing simultaneously in the same codec
| Test ten videos all on the same page, playing simultaneously in the same codec
| ?
| ?
| ?
|-
|-
| Test corrupted video file
| Test corrupted video file
| ?
| ?
| ?
|-
|-
| Test non-existing video file
| Test non-existing video file
| ?
| ?
| ?
|-
|-
| Test file being served from external https link on a non-SSL page.
| Test file being served from external https link on a non-SSL page.
| ?
| ?
| ?
|-
|-
| Test file being served from an external http link on a SSL page
| Test file being served from an external http link on a SSL page
| ?
| ?
| ?
|-
|-
| Test file being served from chrome link on a content page
| Test file being served from chrome link on a content page
| ?
| ?
| ?
|}
|}
Line 167: Line 224:
|-
|-
| class="header"|Test Idea
| class="header"|Test Idea
| class="header"|Test Type
| class="header"|Status
| class="header"|Status
|-
|-
| What happens if you put video inside content editable? can you drag the video around?
| What happens if you put video inside content editable? can you drag the video around?
| ?
| ?
| ?
|-
|-
| What about inside of an SVG section? (note: I don't think this is possible)
| What about inside of an SVG section? (note: I don't think this is possible)
| ?
| ?
| ?
|-
|-
Confirmed users
3,816

edits