enhancement
critical
major
minor
minor
As part of Ticket #25872, the layout of the Script Recorder was changed. These changes mean that running scripted tests that create new components or replace existing ones no longer works.
Currently, the Script Recorder tree, which represents the actions, obtains its model via a provider. Prior to the changes in Ticket #25872, the tree obtained its model through the selection of a ScriptUploadComponent, which has now been removed and whose logic has been incorporated into the tree itself.
Suppose a user wants to play a script that dynamically replaces or creates new components in the application—for example, a new tab. When the script is played, at least one component is replaced (in this case, the tab bar). When a component is replaced, the relationships are reset. This means that the tl:LayoutLinker traverses the component tree and connects the channels of the various components. Among other things, the model channel of the Script Recorder tree is connected via tl:ProviderLinking to the tl:DerivedComponentChannel it created. Since the model channel is a `tl:DefaultChannel`, when the two channels are connected, the value—specifically, the empty `tl:ScriptContainer` from the provider—is set as the model. This is incorrect. As a result, the Script Recorder loses its loaded script. Previously, the value of the selection from the ScriptUploadComponent was used there.
Test
Start the demo, open the Script Recorder, and then run the test
/com.top_logic.demo/src/test/com/top_logic/demo/scripted/layout/TestTabCreation.script.xml
and run it. The test should run without errors.