| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| use { |
| component_events::{ |
| events::{CapabilityRouted, Event, EventMode, EventSubscription, Handler}, |
| matcher::EventMatcher, |
| }, |
| fuchsia_async as fasync, |
| test_utils_lib::opaque_test::{OpaqueTest, OpaqueTestBuilder}, |
| }; |
| |
| #[fasync::run_singlethreaded(test)] |
| async fn integration_test() { |
| let mut builder = |
| OpaqueTestBuilder::new("fuchsia-pkg://fuchsia.com/startup-integration-test#meta/root.cm"); |
| builder = builder |
| .component_manager_url( |
| "fuchsia-pkg://fuchsia.com/startup-integration-test#meta/component_manager.cmx", |
| ) |
| .config("/pkg/data/component_manager_debug_config"); |
| let test: OpaqueTest = builder.build().await.unwrap(); |
| let event_source = test.connect_to_event_source().await.unwrap(); |
| |
| let mut event_stream = event_source |
| .subscribe(vec![EventSubscription::new(vec![CapabilityRouted::NAME], EventMode::Sync)]) |
| .await |
| .unwrap(); |
| event_source.start_component_tree().await; |
| |
| let event = EventMatcher::ok() |
| .moniker("./startup") |
| .capability_name("fuchsia.appmgr.Startup") |
| .expect_match::<CapabilityRouted>(&mut event_stream) |
| .await; |
| event.resume().await.unwrap(); |
| } |