# 1. Mobile Learning Experience — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: mobile_learning_experience.md — every feature, sub-feature, and rule covered

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature, expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 1.1 Mobile-Optimized Video Player | Mobile-optimized video player | TC-ST-13-01-001 |
| 1.1 Mobile-Optimized Video Player | Adaptive video quality (auto-adjust based on network speed) | TC-ST-13-01-002 |
| 1.1 Mobile-Optimized Video Player | Manual quality selection | TC-ST-13-01-003 |
| 1.1 Mobile-Optimized Video Player | Data usage tracker | TC-ST-13-01-004 |
| 1.1 Mobile-Optimized Video Player | Playback controls (play, pause, seek, speed) | TC-ST-13-01-005 |
| 1.1 Mobile-Optimized Video Player | Fullscreen and picture-in-picture | TC-ST-13-01-006 |
| 1.1 Mobile-Optimized Video Player | Player event logging (quality changed, data used) | TC-ST-13-01-007 |
| 1.1 Mobile-Optimized Video Player | Audit logging of the mobile-optimized video player | TC-ST-13-01-008 |
| 1.1 Mobile-Optimized Video Player | Rule: The player auto-adjusts quality based on network speed. | TC-ST-13-01-001 |
| 1.1 Mobile-Optimized Video Player | Rule: The Student can manually select the quality. | TC-ST-13-01-002 |
| 1.1 Mobile-Optimized Video Player | Rule: The data usage tracker shows the data used for video. | TC-ST-13-01-003 |
| 1.1 Mobile-Optimized Video Player | Rule: The player supports the standard playback controls. | TC-ST-13-01-004 |
| 1.1 Mobile-Optimized Video Player | Rule: Player events (quality changed, data used) are logged with the video and the timestamp. | TC-ST-13-01-005 |
| 1.1 Mobile-Optimized Video Player | Rule: The mobile-optimized video player is audit-logged with the account, the video, and the timestamp. | TC-ST-13-01-006 |
| 1.2 Data Saver Mode | Data saver mode toggle | TC-ST-13-01-009 |
| 1.2 Data Saver Mode | Capped video quality in data saver mode | TC-ST-13-01-010 |
| 1.2 Data Saver Mode | Lower-resolution images in data saver mode | TC-ST-13-01-011 |
| 1.2 Data Saver Mode | Auto-play disabled in data saver mode | TC-ST-13-01-012 |
| 1.2 Data Saver Mode | Data saved indicator | TC-ST-13-01-013 |
| 1.2 Data Saver Mode | Data saver mode available on the mobile app | TC-ST-13-01-014 |
| 1.2 Data Saver Mode | Data saver event logging (enabled, disabled) | TC-ST-13-01-015 |
| 1.2 Data Saver Mode | Audit logging of the data saver mode | TC-ST-13-01-016 |
| 1.2 Data Saver Mode | Rule: Data saver mode is a toggle in the mobile app settings. | TC-ST-13-01-009 |
| 1.2 Data Saver Mode | Rule: In data saver mode, video quality is capped and images are lower resolution. | TC-ST-13-01-010 |
| 1.2 Data Saver Mode | Rule: Auto-play is disabled in data saver mode. | TC-ST-13-01-011 |
| 1.2 Data Saver Mode | Rule: The data saved indicator shows the data saved. | TC-ST-13-01-012 |
| 1.2 Data Saver Mode | Rule: Data saver events (enabled, disabled) are logged with the account and the timestamp. | TC-ST-13-01-013 |
| 1.2 Data Saver Mode | Rule: The data saver mode is audit-logged with the account and the timestamp. | TC-ST-13-01-014 |
| 1.3 Gesture Controls | Swipe to skip forward/backward | TC-ST-13-01-017 |
| 1.3 Gesture Controls | Double-tap to bookmark | TC-ST-13-01-018 |
| 1.3 Gesture Controls | Pinch to zoom on diagrams | TC-ST-13-01-019 |
| 1.3 Gesture Controls | Gesture controls in the mobile video player | TC-ST-13-01-020 |
| 1.3 Gesture Controls | Gesture settings (enable/disable) | TC-ST-13-01-021 |
| 1.3 Gesture Controls | Gesture event logging (skipped, bookmarked, zoomed) | TC-ST-13-01-022 |
| 1.3 Gesture Controls | Audit logging of the gesture controls | TC-ST-13-01-023 |
| 1.3 Gesture Controls | Rule: Gestures work in the mobile video player. | TC-ST-13-01-017 |
| 1.3 Gesture Controls | Rule: Swipe skips forward/backward by the platform's interval. | TC-ST-13-01-018 |
| 1.3 Gesture Controls | Rule: Double-tap bookmarks the current position. | TC-ST-13-01-019 |
| 1.3 Gesture Controls | Rule: Pinch zooms on diagrams. | TC-ST-13-01-020 |
| 1.3 Gesture Controls | Rule: Gesture events (skipped, bookmarked, zoomed) are logged with the video and the timestamp. | TC-ST-13-01-021 |
| 1.3 Gesture Controls | Rule: The gesture controls is audit-logged with the account, the video, and the timestamp. | TC-ST-13-01-022 |

## 1.1 Mobile-Optimized Video Player

### TC-ST-13-01-001 — Mobile-optimized video player
**Type:** Positive
**Covers:** 1.1 → Mobile-optimized video player; Rule: The player auto-adjusts quality based on network speed.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Mobile-optimized video player.
2. Observe the result and verify the full behavior: Mobile-optimized video player.
**Expected Result:** Mobile-optimized video player — delivered exactly as documented.
**Priority:** Critical

### TC-ST-13-01-002 — Adaptive video quality (auto-adjust based on network speed)
**Type:** Positive
**Covers:** 1.1 → Adaptive video quality (auto-adjust based on network speed); Rule: The Student can manually select the quality.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Adaptive video quality (auto-adjust based on network speed).
2. Observe the result and verify the full behavior: Adaptive video quality (auto-adjust based on network speed).
**Expected Result:** Adaptive video quality (auto-adjust based on network speed) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-003 — Manual quality selection
**Type:** Positive
**Covers:** 1.1 → Manual quality selection; Rule: The data usage tracker shows the data used for video.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Manual quality selection.
2. Observe the result and verify the full behavior: Manual quality selection.
**Expected Result:** Manual quality selection — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-004 — Data usage tracker
**Type:** Positive
**Covers:** 1.1 → Data usage tracker; Rule: The player supports the standard playback controls.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Data usage tracker.
2. Observe the result and verify the full behavior: Data usage tracker.
**Expected Result:** Data usage tracker — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-005 — Playback controls (play, pause, seek, speed)
**Type:** Positive
**Covers:** 1.1 → Playback controls (play, pause, seek, speed); Rule: Player events (quality changed, data used) are logged with the video and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Playback controls (play.
2. Observe the result and verify the full behavior: Playback controls (play, pause, seek, speed).
**Expected Result:** Playback controls (play, pause, seek, speed) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-006 — Fullscreen and picture-in-picture
**Type:** Positive
**Covers:** 1.1 → Fullscreen and picture-in-picture; Rule: The mobile-optimized video player is audit-logged with the account, the video, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Fullscreen and picture-in-picture.
2. Observe the result and verify the full behavior: Fullscreen and picture-in-picture.
**Expected Result:** Fullscreen and picture-in-picture — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-007 — Player event logging (quality changed, data used)
**Type:** Positive
**Covers:** 1.1 → Player event logging (quality changed, data used)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Player event logging (quality changed.
2. Observe the result and verify the full behavior: Player event logging (quality changed, data used).
**Expected Result:** Player event logging (quality changed, data used) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-008 — Audit logging of the mobile-optimized video player
**Type:** Positive
**Covers:** 1.1 → Audit logging of the mobile-optimized video player
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the mobile-optimized video player.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 1.2 Data Saver Mode

### TC-ST-13-01-009 — Data saver mode toggle
**Type:** Positive
**Covers:** 1.2 → Data saver mode toggle; Rule: Data saver mode is a toggle in the mobile app settings.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Data saver mode toggle.
2. Observe the result and verify the full behavior: Data saver mode toggle.
**Expected Result:** Data saver mode toggle — delivered exactly as documented.
**Priority:** Critical

### TC-ST-13-01-010 — Capped video quality in data saver mode
**Type:** Edge
**Covers:** 1.2 → Capped video quality in data saver mode; Rule: In data saver mode, video quality is capped and images are lower resolution.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Capped video quality in data saver mode.
2. Observe the result and verify the full behavior: Capped video quality in data saver mode.
**Expected Result:** Capped video quality in data saver mode — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-011 — Lower-resolution images in data saver mode
**Type:** Positive
**Covers:** 1.2 → Lower-resolution images in data saver mode; Rule: Auto-play is disabled in data saver mode.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Lower-resolution images in data saver mode.
2. Observe the result and verify the full behavior: Lower-resolution images in data saver mode.
**Expected Result:** Lower-resolution images in data saver mode — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-012 — Auto-play disabled in data saver mode
**Type:** Positive
**Covers:** 1.2 → Auto-play disabled in data saver mode; Rule: The data saved indicator shows the data saved.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Auto-play disabled in data saver mode.
2. Observe the result and verify the full behavior: Auto-play disabled in data saver mode.
**Expected Result:** Auto-play disabled in data saver mode — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-013 — Data saved indicator
**Type:** Positive
**Covers:** 1.2 → Data saved indicator; Rule: Data saver events (enabled, disabled) are logged with the account and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Data saved indicator.
2. Observe the result and verify the full behavior: Data saved indicator.
**Expected Result:** Data saved indicator — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-014 — Data saver mode available on the mobile app
**Type:** Positive
**Covers:** 1.2 → Data saver mode available on the mobile app; Rule: The data saver mode is audit-logged with the account and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Data saver mode available on the mobile app.
2. Observe the result and verify the full behavior: Data saver mode available on the mobile app.
**Expected Result:** Data saver mode available on the mobile app — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-015 — Data saver event logging (enabled, disabled)
**Type:** Positive
**Covers:** 1.2 → Data saver event logging (enabled, disabled)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Data saver event logging (enabled.
2. Observe the result and verify the full behavior: Data saver event logging (enabled, disabled).
**Expected Result:** Data saver event logging (enabled, disabled) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-016 — Audit logging of the data saver mode
**Type:** Positive
**Covers:** 1.2 → Audit logging of the data saver mode
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the data saver mode.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 1.3 Gesture Controls

### TC-ST-13-01-017 — Swipe to skip forward/backward
**Type:** Positive
**Covers:** 1.3 → Swipe to skip forward/backward; Rule: Gestures work in the mobile video player.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Swipe to skip forward/backward.
2. Observe the result and verify the full behavior: Swipe to skip forward/backward.
**Expected Result:** Swipe to skip forward/backward — delivered exactly as documented.
**Priority:** Critical

### TC-ST-13-01-018 — Double-tap to bookmark
**Type:** Positive
**Covers:** 1.3 → Double-tap to bookmark; Rule: Swipe skips forward/backward by the platform's interval.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Double-tap to bookmark.
2. Observe the result and verify the full behavior: Double-tap to bookmark.
**Expected Result:** Double-tap to bookmark — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-019 — Pinch to zoom on diagrams
**Type:** Positive
**Covers:** 1.3 → Pinch to zoom on diagrams; Rule: Double-tap bookmarks the current position.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Pinch to zoom on diagrams.
2. Observe the result and verify the full behavior: Pinch to zoom on diagrams.
**Expected Result:** Pinch to zoom on diagrams — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-020 — Gesture controls in the mobile video player
**Type:** Positive
**Covers:** 1.3 → Gesture controls in the mobile video player; Rule: Pinch zooms on diagrams.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Gesture controls in the mobile video player.
2. Observe the result and verify the full behavior: Gesture controls in the mobile video player.
**Expected Result:** Gesture controls in the mobile video player — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-021 — Gesture settings (enable/disable)
**Type:** Positive
**Covers:** 1.3 → Gesture settings (enable/disable); Rule: Gesture events (skipped, bookmarked, zoomed) are logged with the video and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Gesture settings (enable/disable).
2. Observe the result and verify the full behavior: Gesture settings (enable/disable).
**Expected Result:** Gesture settings (enable/disable) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-022 — Gesture event logging (skipped, bookmarked, zoomed)
**Type:** Positive
**Covers:** 1.3 → Gesture event logging (skipped, bookmarked, zoomed); Rule: The gesture controls is audit-logged with the account, the video, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Gesture event logging (skipped.
2. Observe the result and verify the full behavior: Gesture event logging (skipped, bookmarked, zoomed).
**Expected Result:** Gesture event logging (skipped, bookmarked, zoomed) — delivered exactly as documented.
**Priority:** High

### TC-ST-13-01-023 — Audit logging of the gesture controls
**Type:** Positive
**Covers:** 1.3 → Audit logging of the gesture controls
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the gesture controls.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical
