public void pagecontent_constructor_should_fill_properties_and_parse_markup() { // Arrange PageContent content = new PageContent(); content.Page = new Page(); content.Page.Id = 3; content.Page.Title = "my title"; content.Page.CreatedBy = "me"; content.Page.CreatedOn = DateTime.Now; content.Page.IsLocked = true; content.Page.ModifiedBy = "me2"; content.Page.ModifiedOn = DateTime.Now.AddDays(1); content.Page.Tags = "tag1,tag2,tag3"; content.Text = "some text **in bold**"; content.VersionNumber = 5; TextPluginStub plugin = new TextPluginStub(); plugin.IsCacheable = false; plugin.HeadContent = "head content"; plugin.FooterContent = "footer content"; plugin.PreContainerHtml = "pre container"; plugin.PostContainerHtml = "post container"; plugin.PluginCache = new SiteCache(CacheMock.RoadkillCache); plugin.Repository = _settingsRepository; plugin.Settings.IsEnabled = true; _pluginFactory.RegisterTextPlugin(plugin); // Act PageViewModel model = new PageViewModel(content, _markupConverter); // Assert Assert.That(model.Id, Is.EqualTo(content.Page.Id)); Assert.That(model.Title, Is.EqualTo(content.Page.Title)); Assert.That(model.CreatedBy, Is.EqualTo(content.Page.CreatedBy)); Assert.That(model.ModifiedBy, Is.EqualTo(content.Page.ModifiedBy)); Assert.That(model.VersionNumber, Is.EqualTo(content.VersionNumber)); Assert.That(model.Content, Is.EqualTo(content.Text)); Assert.That(model.CreatedOn, Is.EqualTo(content.Page.CreatedOn)); Assert.That(model.CreatedOn.Kind, Is.EqualTo(DateTimeKind.Utc)); Assert.That(model.ModifiedOn, Is.EqualTo(content.Page.ModifiedOn)); Assert.That(model.ModifiedOn.Kind, Is.EqualTo(DateTimeKind.Utc)); Assert.That(model.Tags.Count(), Is.EqualTo(3)); Assert.That(model.Tags, Contains.Item("tag1")); Assert.That(model.Tags, Contains.Item("tag2")); Assert.That(model.Tags, Contains.Item("tag3")); // (this extra html is from the plugin) Assert.That(model.ContentAsHtml, Is.EqualTo("<p>some text <strong style='color:green'><iframe src='javascript:alert(test)'>in bold</strong>\n</p>"), model.ContentAsHtml); Assert.That(model.IsCacheable, Is.EqualTo(plugin.IsCacheable)); Assert.That(model.PluginHeadHtml, Is.EqualTo(plugin.HeadContent)); Assert.That(model.PluginFooterHtml, Is.EqualTo(plugin.FooterContent)); Assert.That(model.PluginPreContainer, Is.EqualTo(plugin.PreContainerHtml)); Assert.That(model.PluginPostContainer, Is.EqualTo(plugin.PostContainerHtml)); }
public void Settings_Should_Throw_Exception_If_SiteCache_Is_Not_Set() { // Arrange TextPluginStub plugin = new TextPluginStub(); // Act + Assert PluginSettings settings = plugin.Settings; }
public void constructor_should_set_cacheable_to_true() { // Arrange TextPluginStub plugin = new TextPluginStub(); // Act + Assert Assert.That(plugin.IsCacheable, Is.True); }
public void DatabaseId_Should_Default_Version_To_1_If_Version_Is_Empty() { // Arrange TextPluginStub plugin = new TextPluginStub("", "", "", ""); // Act + Assert PluginSettings settings = plugin.Settings; }
public void DatabaseId_Should_Throw_Exception_When_Id_Is_Empty() { // Arrange string id = ""; TextPluginStub plugin = new TextPluginStub(id, "name", "description"); // Act + Assert Guid databaseId = plugin.DatabaseId; }
public void PluginVirtualPath_Should_Throw_Exception_When_Id_Is_Empty() { // Arrange string id = ""; TextPluginStub plugin = new TextPluginStub(id, "name", "description"); // Act + Assert string path = plugin.PluginVirtualPath; }
public void Settings_Should_Throw_Exception_If_Repository_Is_Not_Set() { // Arrange TextPluginStub plugin = new TextPluginStub(); plugin.PluginCache = new SiteCache(new CacheMock()); // Act + Assert PluginSettings settings = plugin.Settings; }
public void Constructor_Should_Set_Cacheable_To_True() { // Arrange RepositoryMock repository = new RepositoryMock(); ApplicationSettings appSettings = new ApplicationSettings(); TextPluginStub plugin = new TextPluginStub(); // Act + Assert Assert.That(plugin.IsCacheable, Is.True); }
public void Settings_Should_Not_Be_Null() { // Arrange + act TextPlugin plugin = new TextPluginStub(); plugin.Repository = new RepositoryMock(); plugin.PluginCache = new SiteCache(new ApplicationSettings(), CacheMock.RoadkillCache); // Assert Assert.That(plugin.Settings, Is.Not.Null); }
public void settings_should_not_be_null() { // Arrange + act TextPlugin plugin = new TextPluginStub(); plugin.Repository = new SettingsRepositoryMock(); plugin.PluginCache = new SiteCache(CacheMock.RoadkillCache); // Assert Assert.That(plugin.Settings, Is.Not.Null); }
public void RegisterTextPlugin_Should_Register_Plugin_And_GetTextPlugin_Should_Return_Plugin() { // Arrange PluginFactory factory = new PluginFactory(); TextPluginStub pluginStub = new TextPluginStub("randomid", "name", "desc"); // Act factory.RegisterTextPlugin(pluginStub); TextPlugin actualPlugin = factory.GetTextPlugin("randomid"); // Assert Assert.That(actualPlugin, Is.Not.Null); }
public void registertextplugin_should_register_plugin_and_gettextplugin_should_return_plugin() { // Arrange PluginFactory factory = CreateFactory(); TextPluginStub pluginStub = new TextPluginStub("randomid", "name", "desc"); // Act factory.RegisterTextPlugin(pluginStub); TextPlugin actualPlugin = factory.GetTextPlugin("randomid"); // Assert Assert.That(actualPlugin, Is.Not.Null); }
public void pluginvirtualpath_should_contain_plugin_id_and_no_trailing_slash() { // Arrange TextPluginStub plugin = new TextPluginStub("Plugin1", "name", "desc"); // Act string virtualPath = plugin.PluginVirtualPath; // Assert Assert.That(virtualPath, Is.StringContaining("Plugin1")); Assert.That(virtualPath, Is.StringStarting("~/Plugins/")); Assert.That(virtualPath, Is.Not.StringEnding("/")); }
public void DatabaseId_Should_Be_Different_Based_On_Id() { // Arrange TextPluginStub plugin1 = new TextPluginStub("PluginId1", "name", "desc"); TextPluginStub plugin2 = new TextPluginStub("PluginId2", "name", "desc"); // Act Guid id1 = plugin1.DatabaseId; Guid id2 = plugin2.DatabaseId; // Assert Assert.That(id1, Is.Not.EqualTo(id2)); }
public void databaseid_should_be_different_based_on_id() { // Arrange TextPluginStub plugin1 = new TextPluginStub("PluginId1", "name", "desc"); TextPluginStub plugin2 = new TextPluginStub("PluginId2", "name", "desc"); // Act Guid id1 = plugin1.DatabaseId; Guid id2 = plugin2.DatabaseId; // Assert Assert.That(id1, Is.Not.EqualTo(id2)); }
public void PluginVirtualPath_Should_Contain_Plugin_Id_And_No_Trailing_Slash() { // Arrange TextPluginStub plugin = new TextPluginStub("Plugin1", "name", "desc"); // Act string virtualPath = plugin.PluginVirtualPath; // Assert Assert.That(virtualPath, Is.StringContaining("Plugin1")); Assert.That(virtualPath, Is.StringStarting("~/Plugins/")); Assert.That(virtualPath, Is.Not.StringEnding("/")); }
public void Settings_Should_Throw_Exception_If_Id_Is_Not_Set() { // Arrange Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>(); var settingsRepositoryMock = new SettingsRepositoryMock(); TextPluginStub plugin = new TextPluginStub("", "", "", ""); plugin.PluginCache = pluginCacheMock.Object; plugin.Repository = settingsRepositoryMock; // Act + Assert PluginSettings actualPluginSettings = plugin.Settings; }
public void Settings_Should_Throw_Exception_If_Id_Is_Not_Set() { // Arrange CacheMock cache = new CacheMock(); ApplicationSettings appSettings = new ApplicationSettings(); Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>(); RepositoryMock repository = new RepositoryMock(); TextPluginStub plugin = new TextPluginStub("", "", "", ""); plugin.PluginCache = pluginCacheMock.Object; plugin.Repository = repository; // Act + Assert PluginSettings actualPluginSettings = plugin.Settings; }
public void getcsslink_should_contain_file_and_expected_html() { // Arrange TextPluginStub plugin = new TextPluginStub("PluginId", "name", "desc"); string expectedHtml = "\t\t" + @"<link href=""~/Plugins/PluginId/file.css?version={PluginVersion}"" rel=""stylesheet"" type=""text/css"" />" + "\n"; expectedHtml = expectedHtml.Replace("{PluginVersion}", plugin.Version); // Act string actualHtml = plugin.GetCssLink("file.css"); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml), actualHtml); }
public void getjavascripthtml_should_contain_scripts_with_headjs() { // Arrange TextPlugin plugin = new TextPluginStub(); plugin.AddScript("pluginscript.js", "script1"); string expectedHtml = @"<script type=""text/javascript"">" + @"head.js({ ""script1"", ""pluginscript.js"" },function() { })" + "</script>\n"; // Act string actualHtml = plugin.GetJavascriptHtml(); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml), actualHtml); }
public void gettextplugins_should_return_all_plugins() { // Arrange PluginFactory factory = CreateFactory(); TextPluginStub plugin1Stub = new TextPluginStub("plugin1", "name", "desc"); TextPluginStub plugin2Stub = new TextPluginStub("plugin2", "name", "desc"); factory.RegisterTextPlugin(plugin1Stub); factory.RegisterTextPlugin(plugin2Stub); // Act IEnumerable <TextPlugin> allPlugins = factory.GetTextPlugins(); // Assert Assert.That(allPlugins.Count(), Is.GreaterThanOrEqualTo(2)); }
public void should_export_siteconfiguration_and_plugin_settings() { // Arrange var settingsRepository = new SettingsRepositoryMock(); settingsRepository.SiteSettings.PluginLastSaveDate = new DateTime(2013, 11, 09, 0, 0, 0); settingsRepository.SiteSettings.AllowedFileTypes = ".exe,.vbscript"; settingsRepository.SiteSettings.MenuMarkup = "markup ```''' \r\n"; // Plugins setup SiteCache siteCache = new SiteCache(new CacheMock()); TextPluginStub plugin1 = new TextPluginStub("fake-plugin1", "fake plugin1", "description 1", "1.1"); plugin1.PluginCache = siteCache; plugin1.Repository = settingsRepository; plugin1.Settings.IsEnabled = true; plugin1.Settings.SetValue("key1", "value1"); plugin1.Settings.SetValue("key2", "value2"); TextPluginStub plugin2 = new TextPluginStub("fake-plugin2", "fake plugin2", "description 2", "2.1"); plugin2.PluginCache = siteCache; plugin2.Repository = settingsRepository; PluginFactoryMock pluginFactory = new PluginFactoryMock(); pluginFactory.TextPlugins.Add(plugin1); pluginFactory.TextPlugins.Add(plugin2); // SqlExportBuilder SqlExportBuilder builder = new SqlExportBuilder(settingsRepository, new UserRepositoryMock(), new PageRepositoryMock(), pluginFactory); builder.IncludeConfiguration = true; builder.IncludePages = false; string expectedSql = ReadEmbeddedResource("expected-siteconfiguration-export.sql"); expectedSql = expectedSql.Replace("{AppVersion}", ApplicationSettings.ProductVersion); // Act string actualSql = builder.Export(); // Assert Assert.That(actualSql, Is.EqualTo(expectedSql), actualSql); }
public void settings_should_default_version_to_1_if_version_is_empty() { // Arrange Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>(); var settingsRepositoryMock = new SettingsRepositoryMock(); TextPluginStub plugin = new TextPluginStub("id", "name", "desc", ""); plugin.PluginCache = pluginCacheMock.Object; plugin.Repository = settingsRepositoryMock; // Act PluginSettings actualPluginSettings = plugin.Settings; // Assert Assert.That(actualPluginSettings.Version, Is.EqualTo("1.0")); }
public void settings_should_create_instance_when_repository_has_no_settings() { // Arrange Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>(); var settingsRepositoryMock = new SettingsRepositoryMock(); TextPluginStub plugin = new TextPluginStub(); plugin.PluginCache = pluginCacheMock.Object; plugin.Repository = settingsRepositoryMock; // Act PluginSettings actualPluginSettings = plugin.Settings; // Assert Assert.That(actualPluginSettings, Is.Not.Null); Assert.That(actualPluginSettings.Values.Count(), Is.EqualTo(0)); }
public void removepluginsettings_should_remove_plugin_settings() { // Arrange CacheMock cache = new CacheMock(); SiteCache siteCache = new SiteCache(cache); TextPluginStub plugin = new TextPluginStub(); plugin.PluginCache = siteCache; plugin.Repository = new SettingsRepositoryMock(); plugin.Settings.SetValue("foo", "bar"); // Act siteCache.RemovePluginSettings(plugin); // Assert Assert.That(cache.Count(), Is.EqualTo(0)); }
public void Should_Ignore_TextPlugins_AfterParse_When_IsEnabled_Is_False() { // Arrange string markupFragment = "Here is some markup **some bold**"; string expectedHtml = "<p>Here is some markup <strong style='color:green'><iframe src='javascript:alert(test)'>some bold</strong>\n</p>"; TextPluginStub plugin = new TextPluginStub(); plugin.Repository = new RepositoryMock(); plugin.PluginCache = new SiteCache(new ApplicationSettings(), CacheMock.RoadkillCache); _pluginFactory.RegisterTextPlugin(plugin); // Act string actualHtml = _markupConverter.ToHtml(markupFragment); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml)); }
public void Should_Ignore_TextPlugins_BeforeParse_When_IsEnabled_Is_False() { // Arrange string markupFragment = "This is my ~~~usertoken~~~"; string expectedHtml = "<p>This is my <span>usertoken</span>\n</p>"; TextPluginStub plugin = new TextPluginStub(); plugin.Repository = new RepositoryMock(); plugin.PluginCache = new SiteCache(new ApplicationSettings(), CacheMock.RoadkillCache); _pluginFactory.RegisterTextPlugin(plugin); // Act string actualHtml = _markupConverter.ToHtml(markupFragment); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml)); }
public void setheadjsonloadedfunction_should_be_added_to_javascript() { // Arrange TextPluginStub plugin = new TextPluginStub(); plugin.AddScript("pluginscript.js", "script1"); plugin.SetHeadJsOnLoadedFunction("alert('done')"); string expectedHtml = @"<script type=""text/javascript"">" + @"head.js({ ""script1"", ""pluginscript.js"" },function() { alert('done') })" + "</script>\n"; // Act string actualHtml = plugin.GetJavascriptHtml(); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml), actualHtml); }
public void should_ignore_textplugins_beforeparse_when_isenabled_is_false() { // Arrange string markupFragment = "This is my ~~~usertoken~~~"; string expectedHtml = "<p>This is my <span>usertoken</span>\n</p>"; TextPluginStub plugin = new TextPluginStub(); plugin.Repository = new SettingsRepositoryMock(); plugin.PluginCache = new SiteCache(CacheMock.RoadkillCache); _pluginFactory.RegisterTextPlugin(plugin); // Act string actualHtml = _markupConverter.ToHtml(markupFragment); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml)); }
public void RemovePluginSettings_Should_Remove_Plugin_Settings() { // Arrange CacheMock cache = new CacheMock(); ApplicationSettings settings = new ApplicationSettings(); SiteCache siteCache = new SiteCache(settings, cache); TextPluginStub plugin = new TextPluginStub(); plugin.PluginCache = siteCache; plugin.Repository = new RepositoryMock(); plugin.Settings.SetValue("foo", "bar"); // Act siteCache.RemovePluginSettings(plugin); // Assert Assert.That(cache.Count(), Is.EqualTo(0)); }