@@ -829,40 +829,47 @@ public void testResetIncrementalBaseLocation() {
829829
830830 findReplaceLogic .setFindString ("test" );
831831 assertThat (textViewer .getSelectedRange (), is (new Point (0 , 4 )));
832+
833+ // Move caret after first "test" i.e., caret after "test\n", so after 5 characters
832834 textViewer .setSelectedRange (5 , 0 );
833835 findReplaceLogic .resetIncrementalBaseLocation ();
834836 findReplaceLogic .performSearch ();
835837 assertThat (textViewer .getSelectedRange (), is (new Point (5 , 4 )));
836838
839+ // Move caret inside second "test" i.e., caret after "test\nte", so after 7 characters
837840 textViewer .setSelectedRange (7 , 0 );
838841 findReplaceLogic .resetIncrementalBaseLocation ();
839842 findReplaceLogic .performSearch ();
840843 assertThat (textViewer .getSelectedRange (), is (new Point (10 , 4 )));
841844
845+ // Move caret to position to third "test" i.e., caret after "test\ntest\n", so after 10 characters
842846 textViewer .setSelectedRange (10 , 0 );
843847 findReplaceLogic .resetIncrementalBaseLocation ();
844848 findReplaceLogic .performSearch ();
845849 assertThat (textViewer .getSelectedRange (), is (new Point (10 , 4 )));
846- assertThat (((FindReplaceLogic ) findReplaceLogic ).getRestoreBaseLocation (), is (new Point (10 , 0 )));
850+
851+ findReplaceLogic .setFindString ("" );
852+ findReplaceLogic .performSearch ();
853+ assertThat (textViewer .getSelectedRange (), is (new Point (10 , 0 )));
847854 }
848855
849856 @ Test
850- public void testRestoreBaseLocationCapturedOnNewSearch () {
857+ public void testSelectionRestoredAfterClearingSearch () {
851858 String setupString = "alpha beta gamma" ;
852859 TextViewer textViewer = setupTextViewer (setupString );
853860 textViewer .setSelectedRange (6 , 0 ); // caret after 'alpha '
854861 IFindReplaceLogic logic = setupFindReplaceLogicObject (textViewer );
855862 logic .activate (SearchOptions .FORWARD );
856863 logic .activate (SearchOptions .INCREMENTAL );
857864
858- // Initially empty find string
865+ logic .setFindString ("gamma" );
866+ assertThat (textViewer .getSelectedRange (), is (new Point (12 , 5 ))); // "gamma" found
867+
859868 logic .setFindString ("" );
860- // Now start a new search (transition empty -> non-empty)
861- logic .setFindString ("beta" );
862- // Expect the stored restore location to match the caret before search started
863- assertThat (((FindReplaceLogic ) logic ).getRestoreBaseLocation (), is (new Point (6 , 0 )));
869+ assertThat (textViewer .getSelectedRange (), is (new Point (6 , 0 )));
864870 }
865871
872+
866873 @ Test
867874 public void testCaretRestoredWhenSearchCleared () {
868875 String setupString = "alpha beta gamma" ;
@@ -882,28 +889,31 @@ public void testCaretRestoredWhenSearchCleared() {
882889 assertThat (textViewer .getSelectedRange (), is (new Point (0 , 0 )));
883890 }
884891
892+
885893 @ Test
886- public void testRestoreBaseLocationRefreshedBetweenSessions () {
894+ public void testCaretRestoredBetweenSearchSessions () {
887895 String setupString = "alpha beta gamma" ;
888896 TextViewer textViewer = setupTextViewer (setupString );
889897 IFindReplaceLogic logic = setupFindReplaceLogicObject (textViewer );
890898 logic .activate (SearchOptions .FORWARD );
891899 logic .activate (SearchOptions .INCREMENTAL );
892900
893- // First search session
894- textViewer .setSelectedRange (0 , 0 );
901+ textViewer .setSelectedRange (0 , 0 ); // caret at start
895902 logic .setFindString ("alpha" );
896- assertThat ((( FindReplaceLogic ) logic ). getRestoreBaseLocation (), is (new Point (0 , 0 )));
903+ assertThat (textViewer . getSelectedRange (), is (new Point (0 , 5 ))); // "alpha" found
897904
898905 // Clear the search (simulate reopen of overlay)
899906 logic .setFindString ("" );
900907 logic .performSearch ();
908+ assertThat (textViewer .getSelectedRange (), is (new Point (0 , 0 ))); // caret restored
901909
902- // Move caret and start new search session
903- textViewer .setSelectedRange (6 , 0 );
910+ textViewer .setSelectedRange (6 , 0 ); // caret before "beta"
904911 logic .setFindString ("beta" );
905- // Verify that restoreBaseLocation updated to the new caret position
906- assertThat (((FindReplaceLogic ) logic ).getRestoreBaseLocation (), is (new Point (6 , 0 )));
912+ assertThat (textViewer .getSelectedRange (), is (new Point (6 , 4 ))); // "beta" found
913+
914+ logic .setFindString ("" );
915+ logic .performSearch ();
916+ assertThat (textViewer .getSelectedRange (), is (new Point (6 , 0 ))); // caret restored to new base
907917 }
908918
909919 @ Test
0 commit comments