test not only if header frei0r.h exists, also use an item
[mlt-frei0r-support.git] / shotcut / TEST_CASES
blobc8278d3ebed3c2f53909595c87239c031a3a0905
1 NLE TEST CASES
2 --------------
4 Prior to Starting:
6 If you have run shotcut with this user before, remove any autosaves:
8 $ rm -f $HOME/.autosave.*.westley
11 TERMINOLIGY
12 -----------
14 Basics:
16 * A 'clip' is the general term used for inputs to the NLE - these are further
17   sub-classified as:
18         * 'stories' being any clip with both video and audio
19         * 'audio' being any clip with only audio
20         * 'stills' being any clip with only video
21 * A 'cut' is part or all of a clip
22 * A 'track' is a sequential arrangements of cuts of a particular type or types - 
23   tracks are sub-classified as:
24         * 'Video' contains a back to back sequence of stories and stills
25         * 'Super' contains a sequence of titles to overlay on the Video track
26         * 'Voice Over' contains audio cuts
27         * 'Music' contains audio cuts
28 * A 'project' is an arrangement of tracks
29 * A 'template' is the base arrangement for a project and it describes track
30   information, mixing levels, transition information and other details that
31   control what can be done with a project
33 The NLE component consists of 6 main sub-components:
35 * the 'server' receives clips for use
36 * the 'browser' lists clips that's been received
37 * the 'preview' plays back clips, cuts and the project itself
38 * the 'cutting tool' is used to trim clips and finetune existing cuts
39 * the 'panel' provides a collection of tools for manipulating the cuts
40 * the 'multitrack' provides a visual representation of the project and provides
41   many manipulatons of the project itself
43 This document provides a thorough rundown of both the expected and actual
44 behaviour of the application.
47 CONTENTS
48 --------
50 1. STARTUP
51 2. BROWSER
52 3. CUTTING AND THE BROWSER
53 4. MULTITRACK
54 4.1 'Video' TRACK
55 4.2 'Super' TRACK
56 4.3 'Voice Over' TRACK
57 4.4 'Music' TRACK
58 5. ATTRIBUTES PANEL
59 6. SUPER PANEL
60 7. OBSCURE PANEL
61 8. COMMENTS PANEL
62 9. PREVIEW MODE
63 10. NEW PROJECT
64 11. PUBLISH
65 12. GENERAL
68 1. STARTUP
69 ----------
71 1.0.0 Run: shotcut-nle
72 --> should be presented with an empty nle with the shotcut logo showing
73     in the preview
75 1.0.1 Exit the NLE
76 --> This is currently done by pressing Escape
77 +++ TODO: Agree an exit procedure
79 1.0.2 Confirm autosave file is created
80 --> ls $HOME/.shotcut/autosave.*.westley
81 --> This should respond with a single file (autosave.5260.westley)
83 1.0.3 Repeat 1.0.0 and 1.0.1
84 --> Confirm that start up/shutdown is unaffected by autosave existence
86 Optional:
88 +++ Confirm that window starts in a 'normal window' when you specify a
89         switch of --normal-window
90 +++ Confirm that you can change port/have multiple versions running when you 
91         specify a non-default port (ie: --port=5261) - this should also affect
92         the result of 1.0.2 above
93 +++ Confirm that a shutdown of the original occurs when you start a new
94         instance on a used port
97 2. BROWSER
98 ----------
100 2.0.0 Repeat 1.0.0
101 --> confirm that arbitrary clicking on empty widgets has no side effects
103 2.0.1 In another shell, inject some clips into the process:
104 --> ie: run: shotcut-inject --port=5260 *.dv *.jpg *.mp3 etc
105 --> or use a trained instance of mc or your file manager of choice
106 --> Ensure that browser widget shows all clips entered
107 --> Invalid clips should should be received with an INVALID thumbnail/cut
108 +++ TODO: Agree on a 'technical difficulties' for missing clips in all cases
110 2.0.2 Selecting arbirtrary clips
111 --> confirm that the preview shows/plays the clips
112 --> confirm that the region above the preview shows the selected clips thumb 
113     and details
114 +++ TODO: show an icon for audio only clips
115 +++ Possible BUG: Clicking on selected item refreshes cutter to defaults
116 +++ BUG: Cutter tool refreshes to default of selected when clicking on scroll 
117         bar 
119 2.0.3 Playback of selected clip
120 --> space toggles playback/pause
121 --> < and > or , and . are equivalent to |<< and >>| resp.
122 --> transport bar below the preview is active
123 *** most buttons on the transport are 'pressure sensitive' (they snap back to 
124         the previous play or pause state when released, with the exceptions of |< and
125         >| which force a pause state on release).
126 +++ TODO: Reimplement |<< and >>| functionality at the project level
128 2.0.4 Selection of an image
129 --> Confirm that the default out point and length match requirements
131 2.0.5 Click on light buttons above browser
132 --> Confirm that they show/hide clips of the expected type
133 --> Confirm that cursor up/down always move to the next item shown
135 2.0.6 Double click on light buttons above browser
136 --> Confirm that only clips of the selected type is shown
137 --> Confirm that cursor up/down always move to the next item shown
139 2.0.7 Confirm placement in multitrack with ctrl-enter
140 --> clips will be placed in the active track as per the rules of a drop at the 
141         current position
142 --> confirm that only clips of the correct type is placed in the project
143 --> confirm that when inserted, the position on the multitrack is at the end of
144         the newly placed cut
145 +++ Possible BUG: this action ignores the cutting tool selection 
146 +++ Possible BUG: attempts to ctrl-enter clips of the wrong type into the current
147         track will be silently ignored and the selected item will move to the next
148         as per cursor down behaviour
150 2.0.8 Confirm placement in multitrack with drag and drop from the browser
151 --> clips will be placed in the specified position as per the rules of the track
152 --> confirm that when inserted, the position on the multitrack is at the start of
153         the newly placed cut
154 +++ Possible BUG: this action ignores the cutting tool selection 
155 +++ Possible BUG: attempts to drop clips of the wrong type onto a track will be 
156         silently ignored
158 2.0.9 Confirm 'browser tracking' functionality
159 --> When the tracking button is on, navigating/playing the project should change
160         the selection
161 +++ TODO: Probably remove this functionality?
163 2.0.10 Confirm multitrack tracking
164 --> When you select an item in the browser, it's existence on the multitrack is 
165         reflected by the colouring of the items on the multitrack - when you're 
166         navigating in the browser, the multitrack will reflect this by showing the
167         items as warm or cold. 
169 2.0.11 Confirm 'Clean' functionality in parallel with light buttons
170 --> Clean should remove all items in the current view which are currently not in
171         the project
172 +++ BUG: Ocassionally, the last clip in use may hang around after a Clean - 
173         pressing clean again should recover from this situation.
175 2.0.12 Remove all items from the project and clean (select and press Del for each item)
176 --> Confirm same behaviour as 2.0.8
178 2.0.13 Exit the NLE when the project is empty
180 Optional:
182 +++ Confirm behaviour of synthetic producers (colour, noise etc).
183 +++ Confirm behaviour of other shotcut client applications (inigo, shotcut-editor,
184         shotcut-preview, mactor etc).
187 3. CUTTING AND THE BROWSER
188 --------------------------
190 3.0.0 Restart the NLE
191 --> If you're following on from section 2 above, the project should be empty
193 3.0.1 Inject some clips
194 --> Same as 2.0.1
196 3.0.2 Select an item from the browser
197 --> Confirm that the preview and cutting tool below the preview reflect the 
198         full length
200 3.0.3 Keyboard focus for cutting
201 --> Pressing tab from the browser cycles between:
202 *** the browser (selected item is red with focus, blue without)
203 *** cutting tool (position pointer is black or blue)
204 *** multitrack (labels on the left are light with focus, dark without)
206 3.0.4 Focus shifting to the cutting tool and keyboard control
207 --> i and o will change the in and out points to the current position
208 --> ctrl-i, ctrl-o and ctrl-p bring focus to the in, out and position slides 
209         respectively
210 --> ctrl-u will toggle between unlocked and locked mode
211 --> left and right cursor keys will change the selected slide by 1 frame
212 --> ctrl-left and ctrl-right move the selected slide by 25 frames
213 --> home will move the position to the current in point
214 --> end will move the position current out point
215 --> ctrl-enter simulates a drop on to the currently selected cut on the
216         timeline 
217 +++ TODO: Have keyboard equivalent for link operations
219 3.0.5 Using the mouse
220 --> clicking and dragging the in, out and position slides changes the 
221         associated value
222 --> clicking and dragging the middle bar provides drag and drop functionality
223 --> in and out can be changed to the current position by clicking on the in and
224         out buttons
226 3.0.6 Lock mode
227 --> Confirm that position cannot move outside the selected in/out region when 
228         lock mode is active
230 3.0.7 Link mode
231 --> when in link mode, the distance between in and out will remain constant
232         when in or out points are changed
235 4. THE MULTITRACK
236 -----------------
238 4.0.0 Clicking on an item in the multitrack seeks to the associated track and cut
239 --> confirm that selecting an item on the multitrack
240 *** forces focus on the multitrack
241 *** moves the position inidicator above the multitrack 
242 *** causes the active track to change when necessary
243 *** causes the item above the preview to change to the selected item
244 *** the selected cuts is shown as hot
245 *** instances of other cuts from the same clip are shown as warm
246 *** overlapping items on other tracks are shown as luke warm
247 *** all other items are cold
249 4.0.1 Clicking on the multitrack while playing
250 --> space toggles playback/pause
251 --> same behaviour as 4.0.0, playback state is unaltered unless the end is reached
253 4.0.2 Clicking on labels to the left
254 --> changes selected track without altering position
255 --> multitrack is updated to reflect the warmth of the current track (as per 4.0.0)
256 --> cutting tool disappears if track is empty (at the current project position)
258 4.0.3 Cursor up and Down
259 --> Changes active track
261 [ The following sections assume testing in the default project type where all ]
262 [ tracks are available                                                        ]
265 4.1 'Video' TRACK
266 -----------------
268 4.1.0 Dropping items from the browser/cutting tool
269 -->     All cuts are placed back to back - no gaps are allowed on this track
270 --> insertion will occur to the left or right of the existing cut, depending on
271         where the drop occurs on an existing cut
272 --> Only 'Projects', 'Stories' and 'Stills' are accepted on this track
274 4.1.1 Moving cuts 
275 --> Attempts to move onto another track will be reject
276 --> same placement rules as 4.1.0, and affected track behaviour is similar with
277         the items on the lower tracks being moved if they meet the following 
278         requirements:
280 4.1.2 Deleting cuts
281 --> Confirm that cuts can be removed
282 --> Only blanks from Voice Over are removed
284 4.1.3 Double clicking on a cut turns it into an SB
285 --> 
287 4.1.4 Right button click
288 --> Mutes or unmutes the audio for the cut selected
290 4.1.5 Exit and restart the nle
291 --> Ensure that mute and SB settings are retained
294 4.2 'Super' TRACK
295 -----------------
297 4.2.0 Dropping items from the browser/cutting tool
298 --> will have no effect - supers are introduced via the 'Super Panel'
301 4.3 'Voice Over' TRACK
302 ----------------------
304 4.3.0 Dropping items from the browser/cutting tool
305 --> only audio only items will be accepted
308 4.4 'Music' TRACK
309 -----------------
311 4.4.0 Dropping items from the browser/cutting tool
312 --> only audio only items will be accepted
315 5. ATTRIBUTES PANEL
316 -------------------
318 5.0.0 Population
319 --> This panel is only populated when editing a cut from the Video track
321 5.0.1 Turning on and off
322 --> confirm that the item is reflected correctly in the preview
325 6. SUPER PANEL
326 --------------
328 5.0.0 Population
329 --> This panel is only populated when editing a cut from the Video track
330 --> super won't be directly selectable
332 TO BE IMPLEMENTED
334 7. OBSCURE PANEL
335 ----------------
337 5.0.0 Population
338 --> This panel is only populated when editing a cut from the Video track
339 --> super won't be directly selectable
341 TO BE IMPLEMENTED
344 8. COMMENTS PANEL
345 -----------------
347 8.0.0 State retention/display
348 --> Selecting an item via the browser will enable the project and clip comments
349         and populate them correctly
350 --> Selecting an item via the multitrack will enable the project, clip and cut
351         comments and populate them accordingly
354 9. PREVIEW MODE
355 ---------------
357 9.0.0 Preview behaviour
358 --> Cuts between scenes should show transitions
360 9.0.1 Cutting tool behaviour
361 --> The only slider left is the position slider
363 9.0.2 Multitrack editing
364 --> Disabled
367 10. NEW PROJECT
368 ---------------
370 10.0.0 Press New Project
371 --> Selection presents a list of available templates
373 10.0.1 Cancel
374 --> Window is closed, current project remains
376 10.0.2 Press New Project, enter a title, select a template an press OK
377 --> multitrack should be emptied and adopt the tracks of dictated by the template
378 --> Title should appear in the Comments Panel
381 11. PUBLISH
382 -----------
384 11.0.0 Press Publish
385 --> Behaviour is to pass the project to the default miracle server 
386 --> When shotcut-server is running, a list of targets should be presented
389 12. GENERAL
390 ----------
392 12.0.0 Auto recovery
393 --> exit the application at any point and restart
394 --> confirm that:
395 *** the used items from the previous session are present in the browser
396 *** the multitrack and user settings in the panels are recovered
398 12.0.1 Undo/Redo
399 --> All modifications on the panels and multitrack are recovered with ctrl-z and 
400         ctrl-r
401 +++ INTENDED: Only items that affect playout are tracked with undo/redo
403 12.0.2 Track CPU usage and memory
404 --> shotcut-nle should have low cpu usage when in a paused state
406 12.0.3 'Hidden' state
407 --> when the shotcut-nle window is hidden (by switching workspaces in your window
408         manager, or minimising when in --normal-window mode), the current play state
409         should drop to paused and the main mlt consumer component should be stopped -
410         when the application is re-displayed, it should be restarted in a paused state.
412 12.0.4 Editing during playback
413 --> this should cause a pause as soon as an edit operation is attempted
415 12.0.5 Exiting during playback
416 --> this should cause a pause as soon as an exit operation is attempted
418 12.0.6 Panel shortcuts
419 --> ctrl 1 to 4 should switch the active panels
421 12.0.7 Multitrack button shortcuts
422 --> alt 1 to 8 should activate the buttons at the bottom of the multitrack