27a30b0668
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
81 lines
2.4 KiB
Dart
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");
|
|
});
|
|
}
|