diff --git a/osu.Game.Rulesets.Osu.Tests/TestCaseSliderInput.cs b/osu.Game.Rulesets.Osu.Tests/TestCaseSliderInput.cs index c0fd63f548..c3df821e1c 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestCaseSliderInput.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestCaseSliderInput.cs @@ -60,12 +60,12 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Pressing a key before a slider, pressing the other key on the slider head, then releasing the latter pressed key - /// should result in tracking to end. - /// Frame 1 (prior to slider): Left Click - /// Frame 2 (within slider hit window): Left & Right Click - /// Frame 3 (while tracking): Left Click - /// A passing test case will have the cursor lose tracking on frame 3. + /// Scenario: + /// - Press a key before a slider starts + /// - Press the other key on the slider head timed correctly while holding the original key + /// - Release the latter pressed key + /// Expected Result: + /// A passing test case will have the cursor lose tracking on frame 3. /// [Test] public void TestLeftBeforeSliderThenRight() @@ -87,12 +87,12 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Hitting a slider head, pressing a new key after the initial hit, then letting go of the original key used to hit - /// the slider should reslt in continued tracking. - /// Frame 1: Left Click - /// Frame 2: Left & Right Click - /// Frame 3: Right Click - /// A passing test case will have the cursor continue to track after frame 3. + /// Scenario: + /// - Press a key on the slider head timed correctly + /// - Press the other key in the middle of the slider while holding the original key + /// - Release the original key used to hit the slider + /// Expected Result: + /// A passing test case will have the cursor continue tracking on frame 3. /// [Test] public void TestLeftBeforeSliderThenRightThenLettingGoOfLeft() @@ -114,12 +114,12 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Hitting a slider head, pressing a new key after the initial hit, then letting go of the new key should result - /// in continue tracking, - /// Frame 1: Left Click - /// Frame 2: Left & Right Click - /// Frame 3: Left Click - /// A passing test case will have the cursor continue to track after frame 3. + /// Scenario: + /// - Press a key on the slider head timed correctly + /// - Press the other key in the middle of the slider while holding the original key + /// - Release the new key that was pressed second + /// Expected Result: + /// A passing test case will have the cursor continue tracking on frame 3. /// [Test] public void TestTrackingRetentionLeftRightLeft() @@ -141,12 +141,12 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Pressing a key before a slider, pressing the other key on the slider head, then releasing the former pressed key - /// should result in continued tracking. - /// Frame 1 (prior to slider): Left Click - /// Frame 2 (on slider head): Left & Right Click - /// Frame 3 (tracking slider body): Right Click - /// A passing test case will have the cursor continue to track after frame 3. + /// Scenario: + /// - Press a key before a slider starts + /// - Press the other key on the slider head timed correctly while holding the original key + /// - Release the key that was held down before the slider started. + /// Expected Result: + /// A passing test case will have the cursor continue tracking on frame 3 /// [Test] public void TestTrackingLeftBeforeSliderToRight() @@ -168,12 +168,11 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Pressing a key before a slider and holding the slider throughout the body should result in tracking, but a miss on the slider head. - /// Only one frame is required: - /// Frame 1: Left Click - /// In a successful test case: - /// The head of the slider should be judged as a miss. - /// The slider end should be judged as a meh. + /// Scenario: + /// - Press a key before a slider starts + /// - Hold the key down throughout the slider without pressing any other buttons. + /// Expected Result: + /// A passing test case will have the cursor track the slider, but miss the slider head. /// [Test] public void TestTrackingPreclicked() @@ -193,11 +192,13 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Hitting a slider head, leaving the slider, then coming back into the slider with the same button to track it should re-start tracking. - /// Only one frame is required: - /// Frame 1: Left Click - /// In a successful test case: - /// The last tick of the slider should be judged as a great. + /// Scenario: + /// - Press a key before a slider starts + /// - Hold the key down after the slider starts + /// - Move the cursor away from the slider body + /// - Move the cursor back onto the body + /// Expected Result: + /// A passing test case will have the cursor track the slider, miss the head, miss the ticks where its outside of the body, and resume tracking when the cursor returns. /// [Test] public void TestTrackingReturnMidSlider() @@ -221,10 +222,14 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Pressing a key before a slider, hitting a slider head, leaving the slider, then coming back into the slider to track it should NOT start retracking - /// This is current stable behavior. - /// In a successful test case: - /// The last tick of the slider should be judged as a miss. + /// Scenario: + /// - Press a key before a slider starts + /// - Press the other key on the slider head timed correctly while holding the original key + /// - Release the key used to hit the slider head + /// - While holding the first key, move the cursor away from the slider body + /// - Still holding the first key, move the cursor back to the slider body + /// Expected Result: + /// A passing test case will have the slider not track despite having the cursor return to the slider body. /// [Test] public void TestTrackingReturnMidSliderKeyDownBefore() @@ -249,9 +254,12 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Halfway into a slider outside of the slider, then starting to hover the slider afterwards should result in tracking - /// In a successful test case: - /// The last tick of the slider should be judged as a great. + /// Scenario: + /// - Wait for the slider to reach a mid-point + /// - Press a key away from the slider body + /// - While holding down the key, move into the slider body + /// Expected Result: + /// A passing test case will have the slider track the cursor after the cursor enters the slider body. /// [Test] public void TestTrackingMidSlider() @@ -274,13 +282,16 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Pressing a key before a slider, clicking another key after the slider, holding both of them and - /// leaving tracking, then releasing both keys, then pressing the originally pressed key should start tracking - /// In a successful test case: - /// The last tick of the slider should be judged as a great. + /// Scenario: + /// - Press a key before the slider starts + /// - Press another key on the slider head while holding the original key + /// - Move out of the slider body while releasing the two pressed keys + /// - Move back into the slider body while pressing any key. + /// Expected Result: + /// A passing test case will have the slider track the cursor after the cursor enters the slider body. /// [Test] - public void TestTrackingPressBeforeSliderClickingOtherKeyLeavingSliderReleaseThenTrackOriginal() + public void TestTrackingReleasedKeys() { AddStep("Mid-slider new tracking acquisition", () => { @@ -300,13 +311,17 @@ namespace osu.Game.Rulesets.Osu.Tests } /// - /// Pressing a key before a slider, clicking another key after the slider, holding both of them and - /// leaving tracking, then releasing both keys, then pressing the originally pressed key should start tracking - /// In a successful test case: - /// The last tick of the slider should be judged as a great. + /// Scenario: + /// - Press a key on the slider head + /// - While holding the key, move outside of the slider body with the cursor + /// - Release the key while outside of the slider body + /// - Press the key again while outside of the slider body + /// - Move back into the slider body while holding the pressed key + /// Expected Result: + /// A passing test case will have the slider track the cursor after the cursor enters the slider body. /// [Test] - public void TestClickingBeforeLeavingSliderReleasingClickingAgainThenTracking() + public void TestTrackingReleasedValidKey() { AddStep("Mid-slider new tracking acquisition", () => {