コード例 #1
0
        public override void BeforeTest()
        {
            base.BeforeTest();

            cachedFeatureStates.Clear();
            var buildTargetGroups = Enum.GetValues(typeof(BuildTargetGroup));

            foreach (BuildTargetGroup buildTargetGroup in buildTargetGroups)
            {
                // Enum has duplicates in it so skip those.
                if (cachedFeatureStates.ContainsKey(buildTargetGroup))
                {
                    continue;
                }

                var cachedFeatureState = new Dictionary <string, bool>();

                var extInfo = FeatureHelpersInternal.GetAllFeatureInfo(buildTargetGroup);
                foreach (var ext in extInfo.Features)
                {
                    cachedFeatureState.Add(ext.Attribute.FeatureId, ext.Feature.enabled);
                    ext.Feature.enabled = false;
                }

                if (cachedFeatureState.Count > 0)
                {
                    cachedFeatureStates.Add(buildTargetGroup, cachedFeatureState);
                }
            }

            OpenXRFeatureSetManager.InitializeFeatureSets(true);
        }
コード例 #2
0
        public void EnableFeatureSetEnablesFeatures()
        {
            OpenXRFeatureSetManager.InitializeFeatureSets(true);
            var extInfo = FeatureHelpersInternal.GetAllFeatureInfo(BuildTargetGroup.Standalone);

            foreach (var ext in extInfo.Features)
            {
                Assert.IsFalse(ext.Feature.enabled);
            }

            var foundFeatureSet = OpenXRFeatureSetManager.GetFeatureSetInfoWithId(BuildTargetGroup.Standalone, k_TestFeatureSetId);

            Assert.IsNotNull(foundFeatureSet);
            foundFeatureSet.isEnabled  = true;
            foundFeatureSet.wasChanged = true;
            OpenXRFeatureSetManager.SetFeaturesFromEnabledFeatureSets(BuildTargetGroup.Standalone);

            foreach (var ext in extInfo.Features)
            {
                if (String.Compare(ext.Attribute.FeatureId, MicrosoftHandInteraction.featureId, true) == 0)
                {
                    Assert.IsTrue(ext.Feature.enabled);
                }
                else
                {
                    Assert.IsFalse(ext.Feature.enabled);
                }
            }
        }
コード例 #3
0
        public void OverrideKnownTestFeatureSet()
        {
            var foundFeatureSet = OpenXRFeatureSetManager.GetFeatureSetWithId(BuildTargetGroup.Standalone, k_TestFeatureSetId);

            Assert.IsNotNull(foundFeatureSet);
            Assert.AreEqual(0, String.Compare(foundFeatureSet.name, k_TestFeatureSetName, true));
        }
コード例 #4
0
        public void NonoverrideKnownTestFeatureSet()
        {
            OpenXRFeatureSetManager.InitializeFeatureSets(true);
            var foundFeatureSet = OpenXRFeatureSetManager.GetFeatureSetWithId(BuildTargetGroup.WSA, k_TestFeatureSetId);

            Assert.IsNotNull(foundFeatureSet);
            Assert.AreEqual(0, String.Compare(foundFeatureSet.name, k_KnownFeatureSetName, true));
        }
コード例 #5
0
        public void UnknownFeatureSetRerturnNull()
        {
            OpenXRFeatureSetManager.InitializeFeatureSets();
            var foundFeatureSet = OpenXRFeatureSetManager.GetFeatureSetWithId(BuildTargetGroup.iOS, k_TestFeatureSetId);

            Assert.IsNull(foundFeatureSet);
            foundFeatureSet = OpenXRFeatureSetManager.GetFeatureSetWithId(BuildTargetGroup.Standalone, "BAD FEATURE SET ID");
            Assert.IsNull(foundFeatureSet);
        }
コード例 #6
0
        public void FoundExpectedFeatureSets()
        {
            string[] expectedFeatuerSets = new string[] {
                k_TestFeatureSetId,
                KnownFeatureSetsContent.s_MicrosoftFeatureSetId,
#if USE_MOCK_FEATURE_SET
                "com.unity.openxr.featureset.mockruntime",
#endif //USE_MOCK_FEATURE_SET
            };

            var featureSets = OpenXRFeatureSetManager.FeatureSetsForBuildTarget(BuildTargetGroup.Standalone);
            Assert.IsNotNull(featureSets);
            Assert.AreEqual(expectedFeatuerSets.Length, featureSets.Count);

            foreach (var featureSet in featureSets)
            {
                if (Array.IndexOf(expectedFeatuerSets, featureSet.featureSetId) == -1)
                {
                    Assert.IsTrue(false, $"Found unexpected feature set id {featureSet.featureSetId}!");
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// Initialize the feature sets by disabling all features sets and all features
        /// </summary>
        /// <param name="addTestFeatures">True to include test features</param>
        private void InitializeFeatureSets(bool addTestFeatures)
        {
            // Initialize first with test feature sets so we can make sure all feature sets are disabled
            OpenXRFeatureSetManager.InitializeFeatureSets(true);

            foreach (var buildTargetGroup in GetBuildTargetGroups())
            {
                // Disable all feature sets for this build target
                foreach (var featureSetInfo in FeatureSetInfosForBuildTarget(buildTargetGroup))
                {
                    featureSetInfo.isEnabled  = false;
                    featureSetInfo.wasEnabled = false;
                    OpenXREditorSettings.Instance.SetFeatureSetSelected(buildTargetGroup, featureSetInfo.featureSetId, false);
                }

                // Disable all features for this build target
                var extInfo = FeatureHelpersInternal.GetAllFeatureInfo(buildTargetGroup);
                foreach (var ext in extInfo.Features)
                {
                    ext.Feature.enabled = false;
                }
            }

            // If requested with no feature sets then reinitialize
            if (!addTestFeatures)
            {
                OpenXRFeatureSetManager.InitializeFeatureSets(false);
            }

            foreach (var buildTargetGroup in GetBuildTargetGroups())
            {
                // No feature sets should be enabled for any build target
                Assert.IsFalse(FeatureSetInfosForBuildTarget(buildTargetGroup).Any(f => f.isEnabled));

                // No features should be enabled
                AssertAllFeatures(buildTargetGroup, FeatureDisabled);
            }
        }
コード例 #8
0
        public void DisableSharedFeaturesLeaveOthersFeaturesEnabled()
        {
            string[] allFeatureIds = new string[] {
                MicrosoftHandInteraction.featureId,
                EyeGazeInteraction.featureId,
                MicrosoftMotionControllerProfile.featureId,
            };

            string[] otherFeatureIds = new string[] {
                MicrosoftMotionControllerProfile.featureId,
            };

            OpenXRFeatureSetManager.InitializeFeatureSets(true);
            var extInfo = FeatureHelpersInternal.GetAllFeatureInfo(BuildTargetGroup.WSA);

            foreach (var ext in extInfo.Features)
            {
                Assert.IsFalse(ext.Feature.enabled);
                if (Array.IndexOf(otherFeatureIds, ext.Attribute.FeatureId) > -1)
                {
                    ext.Feature.enabled = true;
                }
            }

            var featureSetToEnable = OpenXRFeatureSetManager.GetFeatureSetInfoWithId(BuildTargetGroup.WSA, k_TestFeatureSetIdTwo);

            featureSetToEnable.isEnabled  = true;
            featureSetToEnable.wasChanged = true;
            OpenXRFeatureSetManager.SetFeaturesFromEnabledFeatureSets(BuildTargetGroup.WSA);

            foreach (var ext in extInfo.Features)
            {
                if (Array.IndexOf(allFeatureIds, ext.Attribute.FeatureId) >= 0)
                {
                    Assert.IsTrue(ext.Feature.enabled);
                }
                else
                {
                    Assert.IsFalse(ext.Feature.enabled);
                }
            }

            var featureSetToDisable = OpenXRFeatureSetManager.GetFeatureSetInfoWithId(BuildTargetGroup.WSA, k_TestFeatureSetIdTwo);

            Assert.IsNotNull(featureSetToDisable);
            featureSetToDisable.isEnabled  = false;
            featureSetToDisable.wasChanged = true;
            OpenXRFeatureSetManager.SetFeaturesFromEnabledFeatureSets(BuildTargetGroup.WSA);

            foreach (var ext in extInfo.Features)
            {
                if (Array.IndexOf(otherFeatureIds, ext.Attribute.FeatureId) >= 0)
                {
                    Assert.IsTrue(ext.Feature.enabled);
                }
                else
                {
                    Assert.IsFalse(ext.Feature.enabled);
                }
            }
        }
コード例 #9
0
        public void NoFeatureSetsReturnsEmptyList()
        {
            var featureSets = OpenXRFeatureSetManager.FeatureSetsForBuildTarget(BuildTargetGroup.iOS);

            Assert.AreEqual(0, featureSets.Count);
        }