Exemplo n.º 1
0
        public static IAutomationBridge SetUpEnvironment()
        {
            Type interopProviderType = typeof(AutomationInteropProvider);

            // Set the bridge assembly name to a value that will
            // fail when the static constructor attempts to load it.
            Environment.SetEnvironmentVariable("MONO_UIA_BRIDGE",
                                               "Ignore this intentional error");

            // Reset element IDs to 0 for predictable results
            Type      providerWrapperType = Type.GetType("Mono.UIAutomation.UiaDbusBridge.Wrappers.ProviderElementWrapper, UiaDbusBridge, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4ceacb585d99812");
            FieldInfo idCountField        =
                providerWrapperType.GetField("idCount", BindingFlags.NonPublic | BindingFlags.Static);

            idCountField.SetValue(null, 0);

            // Inject a UiaDbusBridge that we have a reference to.
            Type bridgeType               = Type.GetType("Mono.UIAutomation.UiaDbusBridge.AutomationBridge, UiaDbusBridge, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4ceacb585d99812");
            IAutomationBridge bridge      = (IAutomationBridge)Activator.CreateInstance(bridgeType);
            FieldInfo         bridgeField =
                interopProviderType.GetField("bridges", BindingFlags.NonPublic
                                             | BindingFlags.Static);

            List <IAutomationBridge> bridges = new List <IAutomationBridge> ();

            bridges.Add(bridge);

            bridgeField.SetValue(null, bridges);
            bridge.Initialize();

            return(bridge);
        }
Exemplo n.º 2
0
        public static IList <IAutomationBridge> GetAutomationBridges()
        {
            List <IAutomationBridge> bridges = new List <IAutomationBridge> ();

            // Let MONO_UIA_BRIDGE env var override default bridge
            string bridgeAssemblyNames =
                Environment.GetEnvironmentVariable("MONO_UIA_BRIDGE");

            if (string.IsNullOrEmpty(bridgeAssemblyNames))
            {
                bridgeAssemblyNames =
                    UiaAtkBridgeAssembly + ";" + UiaDbusBridgeAssembly;
            }
            bridgeAssemblyNames += ";" + clientBridgeAssembly;

            foreach (string bridgeAssembly in bridgeAssemblyNames.Split(';'))
            {
                if (string.IsNullOrEmpty(bridgeAssembly))
                {
                    continue;
                }
                IAutomationBridge bridge = GetAutomationBridge(bridgeAssembly);
                if (bridge != null)
                {
                    bridges.Add(bridge);
                }
            }

            return(bridges);
        }
Exemplo n.º 3
0
		public static void TearDownEnvironment (IAutomationBridge bridge)
		{
			bridge.Terminate ();
			Type interopProviderType = typeof (AutomationInteropProvider);
			FieldInfo bridgeField =
				interopProviderType.GetField ("bridges", BindingFlags.NonPublic | BindingFlags.Static);
			bridgeField.SetValue (null, new List<IAutomationBridge> ());

			
			Environment.SetEnvironmentVariable ("MONO_UIA_BRIDGE",
			                                   string.Empty);
		}
Exemplo n.º 4
0
        public static void TearDownEnvironment(IAutomationBridge bridge)
        {
            bridge.Terminate();
            Type      interopProviderType = typeof(AutomationInteropProvider);
            FieldInfo bridgeField         =
                interopProviderType.GetField("bridges", BindingFlags.NonPublic | BindingFlags.Static);

            bridgeField.SetValue(null, new List <IAutomationBridge> ());


            Environment.SetEnvironmentVariable("MONO_UIA_BRIDGE",
                                               string.Empty);
        }
Exemplo n.º 5
0
        private static IAutomationBridge GetAutomationBridge(string bridgeAssemblyName)
        {
            Assembly bridgeAssembly = null;

            try {
                bridgeAssembly = Assembly.Load(bridgeAssemblyName);
            } catch (Exception e) {
                Console.WriteLine(string.Format("Error loading UIA bridge ({0}): {1}",
                                                bridgeAssemblyName,
                                                e));
                return(null);
            }

            Type bridgeType = null;

            // Quickie inefficent implementation
            Type bridgeInterfaceType = typeof(IAutomationBridge);

            foreach (Type type in bridgeAssembly.GetTypes())
            {
                if (bridgeInterfaceType.IsAssignableFrom(type))
                {
                    bridgeType = type;
                    break;
                }
            }
            if (bridgeType == null)
            {
                Console.WriteLine("No UIA bridge found in assembly: " +
                                  bridgeAssemblyName);
                return(null);
            }

            try {
                IAutomationBridge bridge
                    = (IAutomationBridge)Activator.CreateInstance(bridgeType);
                if (!bridge.IsAccessibilityEnabled)
                {
                    return(null);
                }

                bridge.Initialize();
                return(bridge);
            } catch (Exception e) {
                Console.WriteLine("Failed to load UIA bridge: " + e);
                return(null);
            }
        }
Exemplo n.º 6
0
		public void SetUp ()
		{
			bridge = TestHelper.SetUpEnvironment ();
		}
 public void SetUp()
 {
     bridge = TestHelper.SetUpEnvironment();
 }
Exemplo n.º 8
0
		public void SetUp ()
		{
			TestHelper.StartDbusMainLoop ();
			bridge = TestHelper.SetUpEnvironment ();
		}
Exemplo n.º 9
0
 public void SetUp()
 {
     TestHelper.StartDbusMainLoop();
     bridge = TestHelper.SetUpEnvironment();
 }