Beispiel #1
0
        public void TestReloadsChangedPolicies()
        {
			LocalPolicyCache lpc = new LocalPolicyCache(m_testFiles.RootPath, false);

            PollingInterval.Interval = new TimeSpan(0, 0, 0);

            Assert.AreEqual(lpc.PolicySets.Count, 2);
            IPolicySetCache lps = lpc.GetPolicySet("policyset2");

            LocalPolicySetVersionCache ver = lps.LatestVersion as LocalPolicySetVersionCache;
            Assert.AreEqual(ver.ID, 1);

            LocalPolicyCatalogueCache master = ver.MasterCatalogue as LocalPolicyCatalogueCache;
            Assert.AreEqual(master.ID, 2);

            IPolicySetVersionCache lpsv = lps.LatestVersion;
            Assert.AreEqual("this is the content of the policyset xml", lpsv.Content);

            System.Threading.Thread.Sleep(500); // make sure the timestamp is different when we change the file

            UpdatePolicy2();

            lps = lpc.GetPolicySet("policyset2");

            ver = lps.LatestVersion as LocalPolicySetVersionCache;
            Assert.AreEqual(ver.ID, 1);

            master = ver.MasterCatalogue as LocalPolicyCatalogueCache;
            Assert.AreEqual(master.ID, 2);

            lpsv = lps.LatestVersion;
            Assert.AreEqual("this is the new content of the policyset xml", lpsv.Content);

            PollingInterval.Interval = new TimeSpan(0, 0, 10);
        
        }
Beispiel #2
0
        public void TestModifiedFlag()
        {
			LocalPolicyCache lpc = new LocalPolicyCache(m_testFiles.RootPath, false);
            IPolicySetCache lps = lpc.GetPolicySet("policyset2");

            LocalPolicySetVersionCache ver = lps.LatestVersion as LocalPolicySetVersionCache;
            Assert.IsFalse(ver.Modified);

            ver.Content = "changes";
            Assert.IsTrue(ver.Modified);
        }
Beispiel #3
0
        public void TestModifiedFlagOnLanguageChange()
        {
			LocalPolicyCache lpc = new LocalPolicyCache(m_testFiles.RootPath, false);
            IPolicySetCache lps = lpc.GetPolicySet("policyset2");

            LocalPolicySetVersionCache ver = lps.LatestVersion as LocalPolicySetVersionCache;
            Assert.IsFalse(ver.Modified);

            LocalPolicyCatalogueCache master = ver.MasterCatalogue as LocalPolicyCatalogueCache;
            LocalPolicyLanguageTableCache lang = master.Languages[0] as LocalPolicyLanguageTableCache;
            lang.Content = "changes";

            Assert.IsTrue(ver.Modified);
        }
Beispiel #4
0
        public void TestIDSetForEachObject()
        {
			LocalPolicyCache lpc = new LocalPolicyCache(m_testFiles.RootPath, false);
            IPolicySetCache lps = lpc.GetPolicySet("policyset2");

            LocalPolicySetVersionCache ver = lps.LatestVersion as LocalPolicySetVersionCache;
            Assert.AreEqual(ver.ID, 1);

            LocalPolicyCatalogueCache master = ver.MasterCatalogue as LocalPolicyCatalogueCache;
            Assert.AreEqual(master.ID, 2);

            LocalPolicyLanguageTableCache lang_master_en = master.Languages[0] as LocalPolicyLanguageTableCache;
            LocalPolicyLanguageTableCache lang_master_jp = master.Languages[1] as LocalPolicyLanguageTableCache;
            Assert.AreEqual(lang_master_en.ID, 3);
            Assert.AreEqual(lang_master_jp.ID, 4);

            LocalPolicyCatalogueCache refcat = ver.ReferenceCatalogues[0] as LocalPolicyCatalogueCache;
            Assert.AreEqual(refcat.ID, 5);

            LocalPolicyLanguageTableCache lang_ref_en = refcat.Languages[0] as LocalPolicyLanguageTableCache;
            LocalPolicyLanguageTableCache lang_ref_jp = refcat.Languages[1] as LocalPolicyLanguageTableCache;
            Assert.AreEqual(lang_ref_en.ID, 6);
            Assert.AreEqual(lang_ref_jp.ID, 7);

            LocalCompiledPolicySetCache cps = ver.CompiledPolicySets[0] as LocalCompiledPolicySetCache;
            Assert.AreEqual(cps.ID, 8);

            LocalPolicyLanguageTableCache lang_cps_en = cps.Languages[0] as LocalPolicyLanguageTableCache;
            LocalPolicyLanguageTableCache lang_cps_jp = cps.Languages[1] as LocalPolicyLanguageTableCache;
            Assert.AreEqual(lang_cps_en.ID, 9);
            Assert.AreEqual(lang_cps_jp.ID, 10);
        }
Beispiel #5
0
        public void TestIDSavedForEachObject()
        {
			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
            LocalPolicySetCache set = cache.NewPolicySet("steve") as LocalPolicySetCache;
            LocalPolicySetVersionCache ver = set.LatestVersion as LocalPolicySetVersionCache;
            ver.ID = 100;

            LocalPolicyCatalogueCache master = ver.NewMasterCatalogue("hello") as LocalPolicyCatalogueCache;
            master.ID = 101;

            LocalPolicyLanguageTableCache lang = master.NewLanguage("en", "stuff", true) as LocalPolicyLanguageTableCache;
            lang.ID = 102;

            set.Save(SaveOption.SaveOnly);


			LocalPolicyCache cache2 = new LocalPolicyCache(m_testFiles.RootPath, false);
            LocalPolicySetCache set2 = cache2.GetPolicySet("steve") as LocalPolicySetCache;

            LocalPolicySetVersionCache ver2 = set2.LatestVersion as LocalPolicySetVersionCache;
            Assert.AreEqual(ver2.ID, 100);

            LocalPolicyCatalogueCache master2 = ver2.MasterCatalogue as LocalPolicyCatalogueCache;
            Assert.AreEqual(master2.ID, 101);

            LocalPolicyLanguageTableCache lang2 = master2.Languages[0] as LocalPolicyLanguageTableCache;
            Assert.AreEqual(lang2.ID, 102);

            System.IO.File.Delete(m_testFiles.RootPath + "steve" + Definitions.PolicyFileExtension);
        }
Beispiel #6
0
		public void TestSaveAs()
		{
			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
			LocalPolicySetCache set = cache.GetPolicySet("policyset1") as LocalPolicySetCache;
			Assert.IsNotNull(set);
			Assert.IsTrue(System.IO.File.Exists(m_testFiles.RootPath + "policyset1" + Definitions.PolicyFileExtension));

			string newfile = Guid.NewGuid().ToString();

			set.SaveAs(SaveOption.SaveOnly, newfile);
			Assert.IsTrue(System.IO.File.Exists(m_testFiles.RootPath + newfile + Definitions.PolicyFileExtension));

			System.IO.File.Delete(m_testFiles.RootPath + newfile + Definitions.PolicyFileExtension);
		}
Beispiel #7
0
		public void TestCreateDefaultPolicyPack()
		{
			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
			LocalPolicySetCache set = cache.NewPolicySet("P5-default") as LocalPolicySetCache;
			Assert.IsNotNull(set);

			string policy = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5-policy.xml");
			string catalogue = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5-cat.xml");
			string language = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5-en.xml");
			
			string smtp_client_policy = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_client_rules.xml");
			string smtp_client_objects = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_client_objects.xml");
			string smtp_server_policy = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_server_smtp_rules.xml");
			string smtp_server_objects = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_server_smtp_objects.xml");
			string http_server_policy = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_server_http_rules.xml");
			string http_server_objects = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_server_http_objects.xml");
			string file_client_policy = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_client_activecontent_rules.xml");
			string file_client_objects = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_client_activecontent_objects.xml");
			string smart_tag_policy = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.Default.p5_beta_client_smarttag_policy.xml");


			LocalPolicySetVersionCache version = set.LatestVersion as LocalPolicySetVersionCache;
			version.Content = policy;

			LocalPolicyCatalogueCache masterCat = version.NewMasterCatalogue(catalogue) as LocalPolicyCatalogueCache;
			masterCat.NewLanguage("en", language, true);

			version.NewCompiledPolicySet("SMTP", "Client", smtp_client_policy, smtp_client_objects);
			version.NewCompiledPolicySet("SMTP", "Server", smtp_server_policy, smtp_server_objects);
			version.NewCompiledPolicySet("HTTP", "Server", http_server_policy, http_server_objects);
			version.NewCompiledPolicySet("ActiveContent", "Client", file_client_policy, file_client_objects);
			version.NewCompiledPolicySet("SmartTagActiveContent", "Client", smart_tag_policy, string.Empty);

			string p5policyfile = System.IO.Path.GetTempFileName();
			set.ExportCompiledPolicySet(p5policyfile);

			LocalPolicySetCache newset = cache.GetPolicySet("P5-default") as LocalPolicySetCache;
			Assert.IsNotNull(newset);

            //System.IO.File.Copy(p5policyfile, Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\Projects\Hygiene\Policies\p5default.policy"), true);
			System.IO.File.Delete(p5policyfile);
			System.IO.File.Delete(m_testFiles.RootPath + "P5-default" + Definitions.PolicyFileExtension);
		}
Beispiel #8
0
		public void TestDisallowChangesToCurrentVersionAfterNewVersion()
		{
			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
			LocalPolicySetCache set = cache.GetPolicySet("policyset1") as LocalPolicySetCache;

			LocalPolicySetVersionCache ver1 = set.GetVersion("1.0") as LocalPolicySetVersionCache;
			LocalPolicySetVersionCache ver2 = set.GetVersion("2.0") as LocalPolicySetVersionCache;
			LocalPolicySetVersionCache ver3 = set.GetVersion("3.0") as LocalPolicySetVersionCache;

			CacheTestHelper.TestVersionIsReadOnly(ver1);
			CacheTestHelper.TestVersionIsReadOnly(ver2);

			set.NewVersion("content");
			CacheTestHelper.TestVersionIsReadOnly(ver3);
		}
Beispiel #9
0
		public void TestExportPolicySetToFile()
		{
			string originalsetname = Guid.NewGuid().ToString();
			string originalsetfilename = originalsetname + Definitions.PolicyFileExtension;
			System.IO.File.Copy(m_testFiles.RootPath + "policyset1" + Definitions.PolicyFileExtension, m_testFiles.RootPath + originalsetfilename, true);

			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
			LocalPolicySetCache set = cache.GetPolicySet(originalsetname) as LocalPolicySetCache;

			string tempfile = System.IO.Path.GetTempFileName();
			set.ExportCompiledPolicySet(tempfile);

			Assert.AreEqual(set.LatestVersion.Status, PolicySetVersionStatus.Enabled);

			LocalPolicySetCache exportset = new LocalPolicySetCache(tempfile);
			Assert.IsNotNull(exportset);
            Assert.AreEqual(exportset.LatestVersion.Status, PolicySetVersionStatus.Enabled);

            System.IO.File.Delete(cache.LocalBasePath + originalsetfilename);
			System.IO.File.Delete(tempfile);
		}
Beispiel #10
0
        public void TestDisallowChangesToPreviousVersions()
        {
			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
            LocalPolicySetCache set = cache.GetPolicySet("policyset1") as LocalPolicySetCache;
            Assert.AreEqual(set.Id, "policyset1");
            Assert.AreEqual(set.PolicySetVersions.Count, 3);

            LocalPolicySetVersionCache latestVersion = set.LatestVersion as LocalPolicySetVersionCache;
            Assert.IsNotNull(latestVersion);

            LocalPolicySetVersionCache ver1 = set.GetVersion("1.0") as LocalPolicySetVersionCache;
            LocalPolicySetVersionCache ver2 = set.GetVersion("2.0") as LocalPolicySetVersionCache;
            LocalPolicySetVersionCache ver3 = set.GetVersion("3.0") as LocalPolicySetVersionCache;

            Assert.IsFalse(ver1.Latest);
            Assert.IsFalse(ver2.Latest);
            Assert.AreEqual(ver3, latestVersion);

			CacheTestHelper.TestVersionIsReadOnly(ver1);
			CacheTestHelper.TestVersionIsReadOnly(ver2);
		}
Beispiel #11
0
		public void TestAddSuperSetAndSave()
		{
			string policySet3 = m_testFiles.RootPath + "policyset3" + Definitions.PolicyFileExtension;
			System.IO.File.Copy(m_testFiles.PolicySet1, policySet3, true);

			LocalPolicyCache cache = new LocalPolicyCache(m_testFiles.RootPath, false);
			LocalPolicySetCache lps = cache.GetPolicySet("policyset3") as LocalPolicySetCache;
			IPolicySetVersionCache lpsv_old = lps.LatestVersion;

			string policyset1_v4 = m_testFiles.GetXmlFromResource(this.GetType(), "Workshare.Policy.ClientCache.Tests.TestFiles.TestPolicySet_1.4.0.version");

			IPolicySetVersionCache lpsv_new = lps.NewSuperSet(policyset1_v4, PolicySetVersionStatus.InProgress);

			Assert.IsFalse(lpsv_old.Latest);
			Assert.IsTrue(lpsv_new.Latest);
			Assert.AreEqual(lpsv_new.Version, "4.0");

            lps.Save(SaveOption.SaveOnly);

            IPolicySetCache lps_new = new LocalPolicySetCache(policySet3);
			IPolicySetVersionCache lpsv_new_new = lps_new.LatestVersion;

			Assert.AreEqual(lpsv_new_new.Version, "4.0");
	
			System.IO.File.Delete(policySet3);
		}
Beispiel #12
0
		public void TestLocalPolicySetProperties()
		{
            LocalPolicyCache lpc = new LocalPolicyCache(m_testFiles.RootPath, false);
            IPolicySetCache lps = lpc.GetPolicySet("policyset1");
			IPolicySetVersionCache lpsv = lps.LatestVersion;

			Assert.AreEqual(lpsv.Version, "3.0");
			Assert.AreEqual(lpsv.Status, PolicySetVersionStatus.Enabled);
		}
        public void TestNonRuntimePolicyNotLoadableFromRuntimeCache()
        {
            string policy = Path.Combine(LocalPolicyCache.LOCAL_BASEPATH_COMMON, "PolicySetA.policy");
            try
            {
                File.Copy(TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\projects\Hygiene\src\PolicySuite.Tests\TestFiles\PolicySetA.policy"),
                                policy);

                Assert.IsTrue(File.Exists(policy));

                LocalPolicyCache cache = new LocalPolicyCache(true);

                Assert.AreEqual(0, cache.PolicySets.Count,
                                "We should still not be able to see policy files in the runtime cache.");

                Assert.IsNull(cache.GetPolicySet(policy), "It should not be possible to load a policy into this cache, so this should return null.");
            }
            finally
            {
                if (File.Exists(policy))
                {
                    File.Delete(policy);
                    Assert.IsFalse(File.Exists(policy));
                }
            }
        }
        public void TestRuntimePolicyLoadableFromNonRuntimePolicyCache()
        {
            string policy = Path.Combine(LocalPolicyCache.LOCAL_BASEPATH_COMMON, "PolicySetA.runtimepolicy");
            try
            {
                File.Copy(TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\projects\Hygiene\src\PolicySuite.Tests\TestFiles\PolicySetA.runtimepolicy"),
                                policy);
                
                Assert.IsTrue(File.Exists(policy));

                LocalPolicyCache cache = new LocalPolicyCache(false);

                Assert.AreEqual(0, cache.PolicySets.Count, "by default, runtime policies will not be read during the initialisation stage, so will not be visible yet.");

                Assert.IsNotNull(cache.GetPolicySet(policy), "It should be possible to load a runtime policy into this cache if you explicity ask to.");
            }
            finally
            {
                if (File.Exists(policy))
                {
                    File.Delete(policy);
                    Assert.IsFalse(File.Exists(policy));
                }
            }
        }