@@ -46,7 +46,7 @@ void providerRoutesPreserveIdentityAndRejectLocalFiles() {
4646 }
4747
4848 @ Test
49- void cardAndAuthorRouteSeparatelyAndNestedActionsStayInLibrary () throws Exception {
49+ void cardTogglesWhileTitleAuthorAndControlsKeepTheirActions () throws Exception {
5050 FutureTask <Void > task = new FutureTask <>(() -> {
5151 AtomicInteger pages = new AtomicInteger ();
5252 AtomicInteger creators = new AtomicInteger ();
@@ -96,21 +96,50 @@ void cardAndAuthorRouteSeparatelyAndNestedActionsStayInLibrary() throws Exceptio
9696 toggle .setOnAction (toggles ::incrementAndGet );
9797 click (toggle , MouseButton .PRIMARY );
9898 assertEquals (1 , toggles .get ());
99- assertEquals (1 , pages .get ());
99+ assertTrue (toggle .isSelected ());
100+ click (card , MouseButton .PRIMARY );
101+ assertEquals (2 , toggles .get ());
102+ assertFalse (toggle .isSelected ());
103+ click (card .lookup (".library-world-project-copy" ), MouseButton .PRIMARY );
104+ assertEquals (3 , toggles .get ());
105+ assertTrue (toggle .isSelected ());
106+ click (card , MouseButton .SECONDARY );
107+ assertEquals (3 , toggles .get ());
108+ click (card .lookup (".library-world-project-title" ), MouseButton .PRIMARY );
109+ click (card .lookup (".author-link" ), MouseButton .PRIMARY );
110+ for (Node button : card .lookupAll (".library-icon-action" )) {
111+ click (button , MouseButton .PRIMARY );
112+ }
113+ assertEquals (3 , toggles .get ());
114+ assertEquals (2 , pages .get ());
115+ assertEquals (2 , creators .get ());
116+ toggle .setDisable (true );
117+ click (card , MouseButton .PRIMARY );
118+ assertEquals (3 , toggles .get ());
119+ toggle .setDisable (false );
100120 ComboBox <String > combo = new ComboBox <>();
101121 VBox controls = new VBox (combo );
102122 controls .getStyleClass ().add ("library-world-version-row" );
103123 VBox contents = new VBox ();
104124 contents .getStyleClass ().add ("library-world-content-card" );
105125 card .getChildren ().addAll (controls , contents );
106- for (Node nested : List .of (combo , controls , contents )) {
126+ click (combo , MouseButton .PRIMARY );
127+ assertEquals (3 , toggles .get ());
128+ for (Node nested : List .of (controls , contents )) {
107129 click (nested , MouseButton .PRIMARY );
108- assertEquals (1 , pages .get ());
130+ assertEquals (2 , pages .get ());
109131 }
132+ assertEquals (5 , toggles .get ());
110133 VBox local = (VBox ) method .invoke (renderer , null , model ("local:file" , "LOCAL" ), List .of ());
111134 assertNull (local .lookup (".author-link" ));
112135 click (local .lookup (".library-world-project-title" ), MouseButton .PRIMARY );
113- assertEquals (1 , pages .get ());
136+ assertEquals (2 , pages .get ());
137+ var localToggle = (LibraryToggleBox ) local .lookup (".library-toggle-box" );
138+ localToggle .setDisable (false );
139+ localToggle .setOnAction (toggles ::incrementAndGet );
140+ click (local , MouseButton .PRIMARY );
141+ assertTrue (localToggle .isSelected ());
142+ assertEquals (6 , toggles .get ());
114143 return null ;
115144 });
116145 Platform .runLater (task );
0 commit comments