Verbesserung
Top-Thema
Detail
Wichtig
Detail
Detail
#26262
Replay von Tests, die Komponenten ersetzen, nicht möglich
Im Zuge von Ticket #25872 wurde das Layout des Script-Recorders geändert. Diese Änderungen führen dazu, dass das Abspielen von gescripteten Tests, die Komponenten neu anlegen oder existierende ersetzen, nicht mehr funktioniert.
Aktuell erhält der Baum des Script-Recorders, der die Aktionen darstellt, sein Modell über einen Provider. Vor den Änderungen von Ticket #25872 erhielt der Baum sein Modell über die Selektion einer ScriptUploadComponent, die nun entfernt wurde und deren Logik in den Baum selbst übernommen wurde.
Angenommen der Nutzer möchte ein Skript abspielen, dass in der Anwendung dynamisch Komponenten ersetzt oder neu anlegt, bspw. einen neuen Tab, dann wird beim Abspielen insbesondere mindestens eine Komponente ersetzt (hier die Tabbar). Beim Ersetzen einer Komponente werden die Beziehungen neu gesetzt. Das heißt, der tl:LayoutLinker durchquert den Komponentenbaum und verbindet die Kanäle der verschiedenen Komponenten. U.a. wird der Modell-Kanal des Script-Recorder-Baums über das tl:ProviderLinking, mit dem von ihm erstelleten tl:DerivedComponentChannel, verbunden. Da der Modell-Kanal ein tl:DefaultChannel ist, wird beim Verbinden der beiden Kanäle insbesondere der Wert, der leere tl:ScriptContainer vom Provider, als Modell gesetzt. Das ist falsch. Dadurch verliert der Script-Recorder sein geladenes Skript. Früher wurde dort der Wert der Selektion der ScriptUploadComponent benutzt.
Test
Demo starten, Script-Recorder öffnen und anschließend den Test
/com.top_logic.demo/src/test/com/top_logic/demo/scripted/layout/TestTabCreation.script.xml
laden und ausführen. Der Test sollte fehlerfrei durchlaufen.