// Copyright (c) 2026 Storm Dragon // Authors: Storm Dragon, Angus Kola // SPDX-License-Identifier: GPL-3.0-or-later package atspi import ( "fmt" "testing" ) func TestDeferredLiveRegionLifetime(t *testing.T) { var store deferredLiveRegionStore for index := range 40 { store.remember(testID(fmt.Sprintf("/region/%d", index)), testID("/document")) } if len(store) != 32 { t.Fatalf("unbounded deferred state: %d", len(store)) } if _, found := store.take(testID("/region/0")); found { t.Fatal("oldest entry not evicted") } store.remember(testID("/region/39"), testID("/document")) if len(store) != 32 { t.Fatal("duplicate added a second entry") } document, found := store.take(testID("/region/39")) if !found || document != testID("/document") { t.Fatal("lost deferred owner") } if _, found = store.take(testID("/region/39")); found { t.Fatal("completed update remained deferred") } store.remember(testID("/other_region"), testID("/other_document")) store.forget_document(testID("/document")) if len(store) != 1 || store[0].document != testID("/other_document") { t.Fatal("document retirement retained old entries or removed another document") } }