# 2. Video Tutorial Player — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: video_tutorial_player.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 |
|---------|--------------------|----------|
| 2.1 Video Playback Controls | Play/pause control | TC-ST-03-02-001 |
| 2.1 Video Playback Controls | Seek bar with current time and total duration | TC-ST-03-02-002 |
| 2.1 Video Playback Controls | Playback speed selection (0.5x, 1x, 1.5x, 2x) | TC-ST-03-02-003 |
| 2.1 Video Playback Controls | Volume control and mute | TC-ST-03-02-004 |
| 2.1 Video Playback Controls | Fullscreen toggle | TC-ST-03-02-005 |
| 2.1 Video Playback Controls | Subtitle selection (multiple languages where available) | TC-ST-03-02-006 |
| 2.1 Video Playback Controls | HD quality with adaptive streaming | TC-ST-03-02-007 |
| 2.1 Video Playback Controls | Playback position saved for resume | TC-ST-03-02-008 |
| 2.1 Video Playback Controls | Video completion tracking (marks the video done) | TC-ST-03-02-009 |
| 2.1 Video Playback Controls | Playback event logging (start, pause, complete, speed change) | TC-ST-03-02-010 |
| 2.1 Video Playback Controls | Audit logging of the video playback | TC-ST-03-02-011 |
| 2.1 Video Playback Controls | Rule: The playback position is saved per video; resume returns to the saved position. | TC-ST-03-02-001 |
| 2.1 Video Playback Controls | Rule: Playback speed is one of the offered options; the choice is remembered per Student. | TC-ST-03-02-002 |
| 2.1 Video Playback Controls | Rule: Subtitles are available only where provided for the video. | TC-ST-03-02-003 |
| 2.1 Video Playback Controls | Rule: A video is marked complete when watched to the end (or past a completion threshold). | TC-ST-03-02-004 |
| 2.1 Video Playback Controls | Rule: Adaptive streaming adjusts quality to the connection; HD is the target quality. | TC-ST-03-02-005 |
| 2.1 Video Playback Controls | Rule: Playback events (start, pause, complete, speed change) are logged with the video and the timestamp. | TC-ST-03-02-006 |
| 2.1 Video Playback Controls | Rule: The video playback is audit-logged with the account, the video, and the timestamp. | TC-ST-03-02-007 |
| 2.2 Video Progress and Completion Tracking | Per-video status: not started, in progress, complete | TC-ST-03-02-012 |
| 2.2 Video Progress and Completion Tracking | Course progress percentage computed from completed videos | TC-ST-03-02-013 |
| 2.2 Video Progress and Completion Tracking | "Continue learning" shows the next incomplete video | TC-ST-03-02-014 |
| 2.2 Video Progress and Completion Tracking | Progress visible on the course page and dashboard | TC-ST-03-02-015 |
| 2.2 Video Progress and Completion Tracking | Completion feeds the analytics and progress modules | TC-ST-03-02-016 |
| 2.2 Video Progress and Completion Tracking | Re-watch a completed video without losing completion status | TC-ST-03-02-017 |
| 2.2 Video Progress and Completion Tracking | Progress sync across web and mobile | TC-ST-03-02-018 |
| 2.2 Video Progress and Completion Tracking | Progress event logging | TC-ST-03-02-019 |
| 2.2 Video Progress and Completion Tracking | Audit logging of the video progress tracking | TC-ST-03-02-020 |
| 2.2 Video Progress and Completion Tracking | Rule: A video's status is one of: not started, in progress, complete. | TC-ST-03-02-012 |
| 2.2 Video Progress and Completion Tracking | Rule: Course progress is the percentage of required videos completed. | TC-ST-03-02-013 |
| 2.2 Video Progress and Completion Tracking | Rule: Re-watching a completed video does not revert its status. | TC-ST-03-02-014 |
| 2.2 Video Progress and Completion Tracking | Rule: Progress is synchronized across web and mobile for the same account. | TC-ST-03-02-015 |
| 2.2 Video Progress and Completion Tracking | Rule: Completion feeds the analytics and progress modules. | TC-ST-03-02-016 |
| 2.2 Video Progress and Completion Tracking | Rule: Progress events are logged with the video, the status change, and the timestamp. | TC-ST-03-02-017 |
| 2.2 Video Progress and Completion Tracking | Rule: The video progress tracking is audit-logged with the account, the video, and the timestamp. | TC-ST-03-02-018 |
| 2.3 Video Notes and Bookmarks | Add a bookmark at the current timestamp | TC-ST-03-02-021 |
| 2.3 Video Notes and Bookmarks | Attach a note to a bookmark | TC-ST-03-02-022 |
| 2.3 Video Notes and Bookmarks | View the list of bookmarks for a video | TC-ST-03-02-023 |
| 2.3 Video Notes and Bookmarks | Jump to a bookmark from the list | TC-ST-03-02-024 |
| 2.3 Video Notes and Bookmarks | Edit or remove a bookmark and its note | TC-ST-03-02-025 |
| 2.3 Video Notes and Bookmarks | Bookmarks visible on the video timeline | TC-ST-03-02-026 |
| 2.3 Video Notes and Bookmarks | Bookmarks private to the Student | TC-ST-03-02-027 |
| 2.3 Video Notes and Bookmarks | Bookmark event logging | TC-ST-03-02-028 |
| 2.3 Video Notes and Bookmarks | Audit logging of the video notes and bookmarks | TC-ST-03-02-029 |
| 2.3 Video Notes and Bookmarks | Rule: A bookmark is tied to a specific video and timestamp. | TC-ST-03-02-021 |
| 2.3 Video Notes and Bookmarks | Rule: A note is optional; a bookmark can exist without a note. | TC-ST-03-02-022 |
| 2.3 Video Notes and Bookmarks | Rule: Bookmarks and notes are private to the Student; they are not shared. | TC-ST-03-02-023 |
| 2.3 Video Notes and Bookmarks | Rule: Removing a bookmark also removes its note. | TC-ST-03-02-024 |
| 2.3 Video Notes and Bookmarks | Rule: Bookmarks do not affect video completion status. | TC-ST-03-02-025 |
| 2.3 Video Notes and Bookmarks | Rule: Bookmark events (add, edit, remove) are logged with the video, the timestamp, and the event time. | TC-ST-03-02-026 |
| 2.3 Video Notes and Bookmarks | Rule: The video notes and bookmarks is audit-logged with the account, the video, and the timestamp. | TC-ST-03-02-027 |

## 2.1 Video Playback Controls

### TC-ST-03-02-001 — Play/pause control
**Type:** Positive
**Covers:** 2.1 → Play/pause control; Rule: The playback position is saved per video; resume returns to the saved 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: Play/pause control.
2. Observe the result and verify the full behavior: Play/pause control.
**Expected Result:** Play/pause control — delivered exactly as documented.
**Priority:** Critical

### TC-ST-03-02-002 — Seek bar with current time and total duration
**Type:** Positive
**Covers:** 2.1 → Seek bar with current time and total duration; Rule: Playback speed is one of the offered options; the choice is remembered per Student.
**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: Seek bar with current time and total duration.
2. Observe the result and verify the full behavior: Seek bar with current time and total duration.
**Expected Result:** Seek bar with current time and total duration — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-003 — Playback speed selection (0.5x, 1x, 1.5x, 2x)
**Type:** Positive
**Covers:** 2.1 → Playback speed selection (0.5x, 1x, 1.5x, 2x); Rule: Subtitles are available only where provided for the 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: Playback speed selection (0.5x.
2. Observe the result and verify the full behavior: Playback speed selection (0.5x, 1x, 1.5x, 2x).
**Expected Result:** Playback speed selection (0.5x, 1x, 1.5x, 2x) — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-004 — Volume control and mute
**Type:** Positive
**Covers:** 2.1 → Volume control and mute; Rule: A video is marked complete when watched to the end (or past a completion threshold).
**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: Volume control and mute.
2. Observe the result and verify the full behavior: Volume control and mute.
**Expected Result:** Volume control and mute — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-005 — Fullscreen toggle
**Type:** Positive
**Covers:** 2.1 → Fullscreen toggle; Rule: Adaptive streaming adjusts quality to the connection; HD is the target 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: Fullscreen toggle.
2. Observe the result and verify the full behavior: Fullscreen toggle.
**Expected Result:** Fullscreen toggle — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-006 — Subtitle selection (multiple languages where available)
**Type:** Positive
**Covers:** 2.1 → Subtitle selection (multiple languages where available); Rule: Playback events (start, pause, complete, speed change) 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: Subtitle selection (multiple languages where available).
2. Observe the result and verify the full behavior: Subtitle selection (multiple languages where available).
**Expected Result:** Subtitle selection (multiple languages where available) — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-007 — HD quality with adaptive streaming
**Type:** Positive
**Covers:** 2.1 → HD quality with adaptive streaming; Rule: The video playback 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: HD quality with adaptive streaming.
2. Observe the result and verify the full behavior: HD quality with adaptive streaming.
**Expected Result:** HD quality with adaptive streaming — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-008 — Playback position saved for resume
**Type:** Positive
**Covers:** 2.1 → Playback position saved for resume
**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 position saved for resume.
2. Observe the result and verify the full behavior: Playback position saved for resume.
**Expected Result:** Playback position saved for resume — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-009 — Video completion tracking (marks the video done)
**Type:** Positive
**Covers:** 2.1 → Video completion tracking (marks the video done)
**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: Video completion tracking (marks the video done).
2. Observe the result and verify the full behavior: Video completion tracking (marks the video done).
**Expected Result:** Video completion tracking (marks the video done) — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-010 — Playback event logging (start, pause, complete, speed change)
**Type:** Positive
**Covers:** 2.1 → Playback event logging (start, pause, complete, speed change)
**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 event logging (start.
2. Observe the result and verify the full behavior: Playback event logging (start, pause, complete, speed change).
**Expected Result:** Playback event logging (start, pause, complete, speed change) — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-011 — Audit logging of the video playback
**Type:** Positive
**Covers:** 2.1 → Audit logging of the video playback
**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 video playback.
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

## 2.2 Video Progress and Completion Tracking

### TC-ST-03-02-012 — Per-video status: not started, in progress, complete
**Type:** Positive
**Covers:** 2.2 → Per-video status: not started, in progress, complete; Rule: A video's status is one of: not started, in progress, complete.
**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: Per-video status: not started.
2. Observe the result and verify the full behavior: Per-video status: not started, in progress, complete.
**Expected Result:** Per-video status: not started, in progress, complete — delivered exactly as documented.
**Priority:** Critical

### TC-ST-03-02-013 — Course progress percentage computed from completed videos
**Type:** Positive
**Covers:** 2.2 → Course progress percentage computed from completed videos; Rule: Course progress is the percentage of required videos completed.
**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: Course progress percentage computed from completed videos.
2. Observe the result and verify the full behavior: Course progress percentage computed from completed videos.
**Expected Result:** Course progress percentage computed from completed videos — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-014 — "Continue learning" shows the next incomplete video
**Type:** Positive
**Covers:** 2.2 → "Continue learning" shows the next incomplete video; Rule: Re-watching a completed video does not revert its status.
**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: "Continue learning" shows the next incomplete video.
2. Observe the result and verify the full behavior: "Continue learning" shows the next incomplete video.
**Expected Result:** "Continue learning" shows the next incomplete video — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-015 — Progress visible on the course page and dashboard
**Type:** Positive
**Covers:** 2.2 → Progress visible on the course page and dashboard; Rule: Progress is synchronized across web and mobile for the same account.
**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: Progress visible on the course page and dashboard.
2. Observe the result and verify the full behavior: Progress visible on the course page and dashboard.
**Expected Result:** Progress visible on the course page and dashboard — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-016 — Completion feeds the analytics and progress modules
**Type:** Positive
**Covers:** 2.2 → Completion feeds the analytics and progress modules; Rule: Completion feeds the analytics and progress modules.
**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: Completion feeds the analytics and progress modules.
2. Observe the result and verify the full behavior: Completion feeds the analytics and progress modules.
**Expected Result:** Completion feeds the analytics and progress modules — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-017 — Re-watch a completed video without losing completion status
**Type:** Positive
**Covers:** 2.2 → Re-watch a completed video without losing completion status; Rule: Progress events are logged with the video, the status change, 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: Re-watch a completed video without losing completion status.
2. Observe the result and verify the full behavior: Re-watch a completed video without losing completion status.
**Expected Result:** Re-watch a completed video without losing completion status — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-018 — Progress sync across web and mobile
**Type:** Positive
**Covers:** 2.2 → Progress sync across web and mobile; Rule: The video progress tracking 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: Progress sync across web and mobile.
2. Observe the result and verify the full behavior: Progress sync across web and mobile.
**Expected Result:** Progress sync across web and mobile — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-019 — Progress event logging
**Type:** Positive
**Covers:** 2.2 → Progress event logging
**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: Progress event logging.
2. Observe the result and verify the full behavior: Progress event logging.
**Expected Result:** Progress event logging — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-020 — Audit logging of the video progress tracking
**Type:** Positive
**Covers:** 2.2 → Audit logging of the video progress tracking
**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 video progress tracking.
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

## 2.3 Video Notes and Bookmarks

### TC-ST-03-02-021 — Add a bookmark at the current timestamp
**Type:** Positive
**Covers:** 2.3 → Add a bookmark at the current timestamp; Rule: A bookmark is tied to a specific video and 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: Add a bookmark at the current timestamp.
2. Observe the result and verify the full behavior: Add a bookmark at the current timestamp.
**Expected Result:** Add a bookmark at the current timestamp — delivered exactly as documented.
**Priority:** Critical

### TC-ST-03-02-022 — Attach a note to a bookmark
**Type:** Positive
**Covers:** 2.3 → Attach a note to a bookmark; Rule: A note is optional; a bookmark can exist without a note.
**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: Attach a note to a bookmark.
2. Observe the result and verify the full behavior: Attach a note to a bookmark.
**Expected Result:** Attach a note to a bookmark — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-023 — View the list of bookmarks for a video
**Type:** Positive
**Covers:** 2.3 → View the list of bookmarks for a video; Rule: Bookmarks and notes are private to the Student; they are not shared.
**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: View the list of bookmarks for a video.
2. Observe the result and verify the full behavior: View the list of bookmarks for a video.
**Expected Result:** View the list of bookmarks for a video — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-024 — Jump to a bookmark from the list
**Type:** Positive
**Covers:** 2.3 → Jump to a bookmark from the list; Rule: Removing a bookmark also removes its note.
**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: Jump to a bookmark from the list.
2. Observe the result and verify the full behavior: Jump to a bookmark from the list.
**Expected Result:** Jump to a bookmark from the list — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-025 — Edit or remove a bookmark and its note
**Type:** Positive
**Covers:** 2.3 → Edit or remove a bookmark and its note; Rule: Bookmarks do not affect video completion status.
**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: Edit or remove a bookmark and its note.
2. Observe the result and verify the full behavior: Edit or remove a bookmark and its note.
**Expected Result:** Edit or remove a bookmark and its note — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-026 — Bookmarks visible on the video timeline
**Type:** Positive
**Covers:** 2.3 → Bookmarks visible on the video timeline; Rule: Bookmark events (add, edit, remove) are logged with the video, the timestamp, and the event time.
**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: Bookmarks visible on the video timeline.
2. Observe the result and verify the full behavior: Bookmarks visible on the video timeline.
**Expected Result:** Bookmarks visible on the video timeline — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-027 — Bookmarks private to the Student
**Type:** Positive
**Covers:** 2.3 → Bookmarks private to the Student; Rule: The video notes and bookmarks 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: Bookmarks private to the Student.
2. Observe the result and verify the full behavior: Bookmarks private to the Student.
**Expected Result:** Bookmarks private to the Student — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-028 — Bookmark event logging
**Type:** Positive
**Covers:** 2.3 → Bookmark event logging
**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: Bookmark event logging.
2. Observe the result and verify the full behavior: Bookmark event logging.
**Expected Result:** Bookmark event logging — delivered exactly as documented.
**Priority:** High

### TC-ST-03-02-029 — Audit logging of the video notes and bookmarks
**Type:** Positive
**Covers:** 2.3 → Audit logging of the video notes and bookmarks
**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 video notes and bookmarks.
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
