# 4. Storage & Device Management — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: storage_device_management.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 |
|---------|--------------------|----------|
| 4.1 Storage Usage and Management | Storage used by offline downloads | TC-ST-12-04-001 |
| 4.1 Storage Usage and Management | Storage breakdown by category (videos, notes, quizzes) | TC-ST-12-04-002 |
| 4.1 Storage Usage and Management | Delete downloads to free space | TC-ST-12-04-003 |
| 4.1 Storage Usage and Management | Low storage warning | TC-ST-12-04-004 |
| 4.1 Storage Usage and Management | Storage available indicator | TC-ST-12-04-005 |
| 4.1 Storage Usage and Management | Bulk delete of downloads | TC-ST-12-04-006 |
| 4.1 Storage Usage and Management | Storage event logging (deleted, warning shown) | TC-ST-12-04-007 |
| 4.1 Storage Usage and Management | Audit logging of the storage usage and management | TC-ST-12-04-008 |
| 4.1 Storage Usage and Management | Rule: Storage used is shown by category. | TC-ST-12-04-001 |
| 4.1 Storage Usage and Management | Rule: Deleting downloads frees space. | TC-ST-12-04-002 |
| 4.1 Storage Usage and Management | Rule: A low storage warning is shown when space is low. | TC-ST-12-04-003 |
| 4.1 Storage Usage and Management | Rule: Bulk delete removes multiple downloads. | TC-ST-12-04-004 |
| 4.1 Storage Usage and Management | Rule: Storage events (deleted, warning shown) are logged with the account and the timestamp. | TC-ST-12-04-005 |
| 4.1 Storage Usage and Management | Rule: The storage usage and management is audit-logged with the account and the timestamp. | TC-ST-12-04-006 |
| 4.2 Device Management | List of devices with offline downloads | TC-ST-12-04-009 |
| 4.2 Device Management | Remove a device (revoke offline access) | TC-ST-12-04-010 |
| 4.2 Device Management | New device notification | TC-ST-12-04-011 |
| 4.2 Device Management | Device limit (maximum active devices) | TC-ST-12-04-012 |
| 4.2 Device Management | Offline access revoked on device removal | TC-ST-12-04-013 |
| 4.2 Device Management | Device list available on web and mobile | TC-ST-12-04-014 |
| 4.2 Device Management | Device event logging (added, removed) | TC-ST-12-04-015 |
| 4.2 Device Management | Audit logging of the device management | TC-ST-12-04-016 |
| 4.2 Device Management | Rule: The device list shows devices with offline downloads. | TC-ST-12-04-009 |
| 4.2 Device Management | Rule: Removing a device revokes its offline access. | TC-ST-12-04-010 |
| 4.2 Device Management | Rule: A new device triggers a notification. | TC-ST-12-04-011 |
| 4.2 Device Management | Rule: A device limit (maximum active devices) is enforced. | TC-ST-12-04-012 |
| 4.2 Device Management | Rule: Device events (added, removed) are logged with the account and the timestamp. | TC-ST-12-04-013 |
| 4.2 Device Management | Rule: The device management is audit-logged with the account, the device, and the timestamp. | TC-ST-12-04-014 |
| 4.3 Download Security and Expiry | Downloads tied to the subscription | TC-ST-12-04-017 |
| 4.3 Download Security and Expiry | Downloads expire on subscription lapse | TC-ST-12-04-018 |
| 4.3 Download Security and Expiry | Downloads expire after a platform-defined period | TC-ST-12-04-019 |
| 4.3 Download Security and Expiry | Expiry warning before downloads expire | TC-ST-12-04-020 |
| 4.3 Download Security and Expiry | Expired content no longer playable | TC-ST-12-04-021 |
| 4.3 Download Security and Expiry | Re-download after re-subscribing | TC-ST-12-04-022 |
| 4.3 Download Security and Expiry | Expiry event logging (warning, expired) | TC-ST-12-04-023 |
| 4.3 Download Security and Expiry | Audit logging of the download security and expiry | TC-ST-12-04-024 |
| 4.3 Download Security and Expiry | Rule: Downloads are tied to an active subscription. | TC-ST-12-04-017 |
| 4.3 Download Security and Expiry | Rule: Downloads expire on subscription lapse or after the platform-defined period. | TC-ST-12-04-018 |
| 4.3 Download Security and Expiry | Rule: An expiry warning is shown before expiry. | TC-ST-12-04-019 |
| 4.3 Download Security and Expiry | Rule: Expired content is no longer playable. | TC-ST-12-04-020 |
| 4.3 Download Security and Expiry | Rule: Expiry events (warning, expired) are logged with the content and the timestamp. | TC-ST-12-04-021 |
| 4.3 Download Security and Expiry | Rule: The download security and expiry is audit-logged with the account, the content, and the timestamp. | TC-ST-12-04-022 |

## 4.1 Storage Usage and Management

### TC-ST-12-04-001 — Storage used by offline downloads
**Type:** Positive
**Covers:** 4.1 → Storage used by offline downloads; Rule: Storage used is shown by category.
**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: Storage used by offline downloads.
2. Observe the result and verify the full behavior: Storage used by offline downloads.
**Expected Result:** Storage used by offline downloads — delivered exactly as documented.
**Priority:** Critical

### TC-ST-12-04-002 — Storage breakdown by category (videos, notes, quizzes)
**Type:** Positive
**Covers:** 4.1 → Storage breakdown by category (videos, notes, quizzes); Rule: Deleting downloads frees space.
**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: Storage breakdown by category (videos.
2. Observe the result and verify the full behavior: Storage breakdown by category (videos, notes, quizzes).
**Expected Result:** Storage breakdown by category (videos, notes, quizzes) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-003 — Delete downloads to free space
**Type:** Positive
**Covers:** 4.1 → Delete downloads to free space; Rule: A low storage warning is shown when space is low.
**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: Delete downloads to free space.
2. Observe the result and verify the full behavior: Delete downloads to free space.
**Expected Result:** Delete downloads to free space — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-004 — Low storage warning
**Type:** Positive
**Covers:** 4.1 → Low storage warning; Rule: Bulk delete removes multiple downloads.
**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: Low storage warning.
2. Observe the result and verify the full behavior: Low storage warning.
**Expected Result:** Low storage warning — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-005 — Storage available indicator
**Type:** Positive
**Covers:** 4.1 → Storage available indicator; Rule: Storage events (deleted, warning shown) 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: Storage available indicator.
2. Observe the result and verify the full behavior: Storage available indicator.
**Expected Result:** Storage available indicator — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-006 — Bulk delete of downloads
**Type:** Positive
**Covers:** 4.1 → Bulk delete of downloads; Rule: The storage usage and management 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: Bulk delete of downloads.
2. Observe the result and verify the full behavior: Bulk delete of downloads.
**Expected Result:** Bulk delete of downloads — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-007 — Storage event logging (deleted, warning shown)
**Type:** Positive
**Covers:** 4.1 → Storage event logging (deleted, warning shown)
**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: Storage event logging (deleted.
2. Observe the result and verify the full behavior: Storage event logging (deleted, warning shown).
**Expected Result:** Storage event logging (deleted, warning shown) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-008 — Audit logging of the storage usage and management
**Type:** Positive
**Covers:** 4.1 → Audit logging of the storage usage and management
**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 storage usage and management.
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

## 4.2 Device Management

### TC-ST-12-04-009 — List of devices with offline downloads
**Type:** Positive
**Covers:** 4.2 → List of devices with offline downloads; Rule: The device list shows devices with offline downloads.
**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: List of devices with offline downloads.
2. Observe the result and verify the full behavior: List of devices with offline downloads.
**Expected Result:** List of devices with offline downloads — delivered exactly as documented.
**Priority:** Critical

### TC-ST-12-04-010 — Remove a device (revoke offline access)
**Type:** Positive
**Covers:** 4.2 → Remove a device (revoke offline access); Rule: Removing a device revokes its offline access.
**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: Remove a device (revoke offline access).
2. Observe the result and verify the full behavior: Remove a device (revoke offline access).
**Expected Result:** Remove a device (revoke offline access) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-011 — New device notification
**Type:** Positive
**Covers:** 4.2 → New device notification; Rule: A new device triggers a notification.
**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: New device notification.
2. Observe the result and verify the full behavior: New device notification.
**Expected Result:** New device notification — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-012 — Device limit (maximum active devices)
**Type:** Edge
**Covers:** 4.2 → Device limit (maximum active devices); Rule: A device limit (maximum active devices) is enforced.
**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: Device limit (maximum active devices).
2. Observe the result and verify the full behavior: Device limit (maximum active devices).
**Expected Result:** Device limit (maximum active devices) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-013 — Offline access revoked on device removal
**Type:** Positive
**Covers:** 4.2 → Offline access revoked on device removal; Rule: Device events (added, removed) 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: Offline access revoked on device removal.
2. Observe the result and verify the full behavior: Offline access revoked on device removal.
**Expected Result:** Offline access revoked on device removal — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-014 — Device list available on web and mobile
**Type:** Positive
**Covers:** 4.2 → Device list available on web and mobile; Rule: The device management is audit-logged with the account, the device, 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: Device list available on web and mobile.
2. Observe the result and verify the full behavior: Device list available on web and mobile.
**Expected Result:** Device list available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-015 — Device event logging (added, removed)
**Type:** Positive
**Covers:** 4.2 → Device event logging (added, removed)
**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: Device event logging (added.
2. Observe the result and verify the full behavior: Device event logging (added, removed).
**Expected Result:** Device event logging (added, removed) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-016 — Audit logging of the device management
**Type:** Positive
**Covers:** 4.2 → Audit logging of the device management
**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 device management.
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

## 4.3 Download Security and Expiry

### TC-ST-12-04-017 — Downloads tied to the subscription
**Type:** Positive
**Covers:** 4.3 → Downloads tied to the subscription; Rule: Downloads are tied to an active subscription.
**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: Downloads tied to the subscription.
2. Observe the result and verify the full behavior: Downloads tied to the subscription.
**Expected Result:** Downloads tied to the subscription — delivered exactly as documented.
**Priority:** Critical

### TC-ST-12-04-018 — Downloads expire on subscription lapse
**Type:** Edge
**Covers:** 4.3 → Downloads expire on subscription lapse; Rule: Downloads expire on subscription lapse or after the platform-defined period.
**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: Downloads expire on subscription lapse.
2. Observe the result and verify the full behavior: Downloads expire on subscription lapse.
**Expected Result:** Downloads expire on subscription lapse — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-019 — Downloads expire after a platform-defined period
**Type:** Edge
**Covers:** 4.3 → Downloads expire after a platform-defined period; Rule: An expiry warning is shown before expiry.
**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: Downloads expire after a platform-defined period.
2. Observe the result and verify the full behavior: Downloads expire after a platform-defined period.
**Expected Result:** Downloads expire after a platform-defined period — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-020 — Expiry warning before downloads expire
**Type:** Edge
**Covers:** 4.3 → Expiry warning before downloads expire; Rule: Expired content is no longer playable.
**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: Expiry warning before downloads expire.
2. Observe the result and verify the full behavior: Expiry warning before downloads expire.
**Expected Result:** Expiry warning before downloads expire — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-021 — Expired content no longer playable
**Type:** Edge
**Covers:** 4.3 → Expired content no longer playable; Rule: Expiry events (warning, expired) are logged with the content 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: Expired content no longer playable.
2. Observe the result and verify the full behavior: Expired content no longer playable.
**Expected Result:** Expired content no longer playable — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-022 — Re-download after re-subscribing
**Type:** Positive
**Covers:** 4.3 → Re-download after re-subscribing; Rule: The download security and expiry is audit-logged with the account, the content, 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-download after re-subscribing.
2. Observe the result and verify the full behavior: Re-download after re-subscribing.
**Expected Result:** Re-download after re-subscribing — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-023 — Expiry event logging (warning, expired)
**Type:** Edge
**Covers:** 4.3 → Expiry event logging (warning, expired)
**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: Expiry event logging (warning.
2. Observe the result and verify the full behavior: Expiry event logging (warning, expired).
**Expected Result:** Expiry event logging (warning, expired) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-04-024 — Audit logging of the download security and expiry
**Type:** Edge
**Covers:** 4.3 → Audit logging of the download security and expiry
**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 download security and expiry.
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
