This test executes the story shell. Below is the sequence of actions and verifications. All actions and verifications are driven by the session shell. The story shell just responds.
We also verify that the story receives the manifest regardless of how the intent we use to add the module is resolved, i.e. regardless of whether it specifies the action or the package of the module. For that, we run the whole sequence above again, but use intents that specify handlers rather than actions to add the modules.
For each event we would like to verify, the story shell writes to TestStore using Put(). The session shell uses Get() to register handlers for the keys it expects the story shell to Put(), and continues when it has seen all the keys.