public void RuleForUrl(string site)
        {
            var plugin = new BlockResourcesPlugin();
            var rule   = plugin.AddRule(builder => builder.ForUrl("google"));

            Assert.True(rule.IsSiteBlocked(site));
        }
        public void RuleForResource()
        {
            var plugin = new BlockResourcesPlugin();
            var rule   = plugin.AddRule(builder => builder.BlockedResources(ResourceType.Document));

            Assert.True(rule.IsResourcesBlocked(ResourceType.Document));
        }
        public void ShouldAddsToListOfRules()
        {
            var plugin = new BlockResourcesPlugin();
            var rule   = plugin.AddRule(builder => builder.BlockedResources(ResourceType.Document));

            Assert.NotEmpty(plugin.BlockResources);
            Assert.Contains(ResourceType.Document, plugin.BlockResources[0].ResourceType);
        }
        public void ShouldRemoveRule()
        {
            var plugin = new BlockResourcesPlugin();

            var actualRule = plugin.AddRule(builder => builder.BlockedResources(ResourceType.Font));
            var otherRule  = plugin.AddRule(builder => builder.BlockedResources(ResourceType.Document));

            plugin.RemoveRule(actualRule);

            Assert.DoesNotContain(actualRule, plugin.BlockResources);
            Assert.Contains(otherRule, plugin.BlockResources);
        }
        public async Task RuleForPage()
        {
            var plugin  = new BlockResourcesPlugin();
            var browser = await base.LaunchWithPluginAsync(plugin);

            var actualPage = (await browser.PagesAsync())[0];
            var otherPage  = await browser.NewPageAsync();

            var rule = plugin.AddRule(builder => builder.BlockedResources(ResourceType.Document).OnlyForPage(actualPage));

            Assert.True(rule.IsPageBlocked(actualPage));
            Assert.False(rule.IsPageBlocked(otherPage));
        }