1 # Usdview Black Box Testing
3 The testusdview automated testing harness allows us to test many of
4 usdview
's features, but not all. As we develop, when we fix or deploy
5 a feature for which it does not seem reasonable to add a testusdview
6 test-case, we should instead add a test for it here.
8 ## Viewport prim Vising and Invising
12 Ensure that when we select (including multi-select) prims (or models, when
13 "Pick Mode" is "Models") in the viewport, and **then** use the hotkeys for
14 _Make Invisible_, _Make Visible_, _Vis Only_, _Remove Session Visibility_, and
15 _Remove All Session Visibility_, that:
16 - The prims actually appear/disappear as expected in the viewport
17 - When the selected items are viewed in the Prim View browser subsequently,
18 the **Vis** column shows "I" appropriately for invisible prims and their
19 descendants, and "V" elsewhere (except for non-Imageable prims such as
20 Materials and Shaders, which should show nothing).
24 - Start usdview with a sufficiently complex asset such that not all prims are
25 open in the Prim View browser. The Kitchen_set.usd asset works well.
26 - In the viewport, Shift-select several pieces of geometry, from different
28 - Run through the visibility operations via hotkey (or RMB context menu),
29 ensuring that geometry disappears and reappears. E.g. Ctrl-h to invis/hide,
30 followed by Shift-h to vis/unhide.
31 - After invising some geometry, hover mouse over Prim View, and hit 'f
' to
32 frame the selection(s), which should cause rows to be expanded, showing the
33 selected prims. You should see that the newly exposed prims have 'I
' in the
34 _Vis_ column (as well as all of their descendants, if you are in "Pick Models"
35 mode, and open the model in the browser).
38 ## Vis and Draw Mode Columns Do Not Affect Selection
42 The Prim View Browser should select prims when the user clicks within the
43 __Prim Name__ or __Type__ columns, but when clicking in the __Vis__ or
44 __Draw Mode__ columns, the current selection should not be affected, and instead
45 the user should just be modifying the prim's visibility or Draw Mode.
47 After initial deployment of
this feature, there was an uncaught regression in
48 which interacting with a prim/row when the selected prim/row was not visible
49 in the browser would cause the browser to scroll to the selected prim and cancel
57 When making selections in the viewport, we
do not expect the
"expansion state"
58 of the Prim View to change. Instead,
if selected prim(s) is already visible in
59 the browser, then it should highlight (become selected); but
if it is not
60 visible/exposed, then only its visible ancestors should be highlighted in a
61 secondary, muted selection color.
65 - Start usdview with a sufficiently complex asset such that not all prims are
66 open in the Prim View browser. The Kitchen_set.usd asset works well.
67 - Pick some geometry in the viewer, and ensure we see desired behavior in
68 browser, as described in Goal above. (The top of the kitchen table is a
70 - Now hover over the browser, and hit
'f' to frame the selection (or first
71 selected prim
if a multi-selection).
72 - Reset Prim View with Alt-3 (Show > Prim View Depth > Level 3)
73 - Go back to the viewport, and select something
else (e.g refridgerator door).
74 Ensure browser updates only in that a different ancestor selection is made
75 (since the refridgerator is in the _North_Group_ as opposed to the
76 _DiningTable_group_ ).
77 - Hover over the Prim View, and use the arrow/cursor keys to change selection.
78 Upon first keypress, the selected item should become visible/expanded, and
79 uniquely selected (
if you had a multi-selection), and navigation should
80 then proceed as expected
using up/down, left/rught keys.
void if(!TfPyIsInitialized())
Invokes wrapFunc to wrap type T if T is not already wrapped.