session_shell integration test

This test exercises the APIs exposed to the session shell:

  • Create, start, stop, delete stories.

  • See existing stories as long as they are not deleted.

  • Add modules to existing stories.

  • Be notified when story state changes.

  • Be notified through SessionShell.AttachView() of a new story view when story start is requested by RequestStart().

  • Be notified through SessionShell.DetachView() of a story going away.

  • StoryRunner tolerates a session shell not responding fast enough to SessionShell.DetachView().

  • On logout, no DetachView() calls are made for still running stories.

The test code is invoked as a session shell from basemgr and executes a predefined sequence of steps, rather than to expose a UI to be driven by user interaction, as a session shell normally would. I.e. the test is implemented as a session shell component.