Files
dartamp/test/eq_presets_test.dart
2026-08-16 17:29:00 +02:00

81 lines
2.4 KiB
Dart

import "package:dartamp/src/player/eq_presets.dart";
import "package:flutter_test/flutter_test.dart";
import "package:shared_preferences/shared_preferences.dart";
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
setUp(() {
SharedPreferences.setMockInitialValues({});
});
test("first load seeds the 18 built-in presets", () async {
final presets = await EqPresets.load();
expect(presets.length, 18);
expect(presets["Classical"], isNotNull);
expect(presets["Flat"]!.bands, everyElement(31));
});
test("save adds a new preset", () async {
await EqPresets.save(
const EqPreset(
name: "My mix",
preamp: 40,
bands: [35, 36, 37, 38, 39, 40, 41, 42, 43, 44],
),
);
final presets = await EqPresets.load();
expect(presets.length, 19);
expect(presets["My mix"]!.preamp, 40);
expect(presets["My mix"]!.bands, [35, 36, 37, 38, 39, 40, 41, 42, 43, 44]);
});
test("save overwrites an existing preset case-insensitively", () async {
await EqPresets.save(
const EqPreset(
name: "rock",
preamp: 50,
bands: [50, 50, 50, 50, 50, 50, 50, 50, 50, 50],
),
);
final presets = await EqPresets.load();
expect(presets.length, 18);
expect(presets["Rock"]!.preamp, 50);
});
test("remove deletes by name case-insensitively", () async {
await EqPresets.remove("flat");
final presets = await EqPresets.load();
expect(presets.containsKey("Flat"), isFalse);
expect(presets.length, 17);
});
test(
"byName matches case-insensitively and misses missing presets",
() async {
final found = await EqPresets.byName("POP");
expect(found, isNotNull);
expect(found!.name, "Pop");
expect(await EqPresets.byName("Nope"), isNull);
},
);
test("last preset round-trips", () async {
expect(await EqPresets.lastPreset(), isNull);
await EqPresets.setLastPreset("Classical");
expect(await EqPresets.lastPreset(), "Classical");
});
test("malformed stored data falls back to the built-ins", () async {
SharedPreferences.setMockInitialValues({"winamp.eq_presets": "{oops"});
final presets = await EqPresets.load();
expect(presets.length, 18);
});
test("defaultPreset is the neutral reset", () {
expect(EqPresets.defaultPreset.preamp, 31);
expect(EqPresets.defaultPreset.bands, everyElement(31));
expect(EqPresets.defaultPreset.name, "Default");
});
}