public Analysis GetAnalysis()
        {
            var analysis = new Analysis();

            var serverResponseAnalyzer = new ServerResponseAnalyzer();

            analysis.Results.Add(serverResponseAnalyzer.Analyse(_htmlResult.Document, _htmlResult.ServerResponseTime));

            var gzipAnalyzer = new GZipAnalyzer();

            analysis.Results.Add(gzipAnalyzer.Analyse(_htmlResult.Document, _htmlResult.Url));

            var htmlSizeAnalyzer = new HtmlSizeAnalyzer();

            analysis.Results.Add(htmlSizeAnalyzer.Analyse(_htmlResult.Document));

            var externalCallAnalyzer = new AdditionalCallAnalyzer();

            analysis.Results.Add(externalCallAnalyzer.Analyse(_htmlResult.Document));

            var url = new Uri(_htmlResult.Url);

            var cssMinifationAnalyzer = new CssMinificationAnalyzer();

            analysis.Results.Add(cssMinifationAnalyzer.Analyse(_htmlResult.Document, url));

            var javascriptMinifationAnalyzer = new JavascriptMinificationAnalyzer();

            analysis.Results.Add(javascriptMinifationAnalyzer.Analyse(_htmlResult.Document, url));

            return(analysis);
        }
Ejemplo n.º 2
0
        public void Analyse_OnExecuteWithLessThan15ExternalCalls_TokensGetSetCorrecly()
        {
            var analyzer = new AdditionalCallAnalyzer(new OptionHelper());

            var doc = new HtmlDocument();

            doc.LoadHtml("<body><link href=\"/\" rel=\"stylesheet\"/><script src=\"/\"></script><img src=\"/\" /><object data=\"/\"></object></body>");

            var pageData = new PageData()
            {
                Document     = doc.DocumentNode,
                Focuskeyword = "focus",
                Url          = "http://www.google.com"
            };

            analyzer.Analyse(pageData);
            var result = analyzer.AnalyzeResult;

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ResultRules.Count == 1);
            Assert.AreEqual(ResultType.Success, result.ResultRules.First().Type);
            Assert.AreEqual("4", result.ResultRules.First().Tokens[0]);
            Assert.AreEqual("1", result.ResultRules.First().Tokens[1]);
            Assert.AreEqual("1", result.ResultRules.First().Tokens[2]);
            Assert.AreEqual("1", result.ResultRules.First().Tokens[3]);
            Assert.AreEqual("1", result.ResultRules.First().Tokens[4]);
            Assert.AreEqual("30", result.ResultRules.First().Tokens[5]);
            Assert.AreEqual("15", result.ResultRules.First().Tokens[6]);
            Assert.AreEqual("less_than_acceptable_calls", result.ResultRules.First().Alias);
        }
Ejemplo n.º 3
0
        public void Analyse_OnExecuteWithCustomOptionsWithMoreThan10ExternalCalls_TokensGetSetCorrecly()
        {
            var analyzer = new AdditionalCallAnalyzer(new OptionHelper());

            analyzer.Options = new List <Option> {
                new Option()
                {
                    Key = "MaximumAdditionalCalls", Value = "10"
                }
            };

            string html = "";

            for (int i = 0; i < 11; i++)
            {
                html += "<img src=\"/\" />";
            }

            var doc = new HtmlDocument();

            doc.LoadHtml($"<body>{html}</body>");

            var pageData = new PageData()
            {
                Document     = doc.DocumentNode,
                Focuskeyword = "focus",
                Url          = "http://www.google.com"
            };

            analyzer.Analyse(pageData);
            var result = analyzer.AnalyzeResult;

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ResultRules.Count == 1);
            Assert.AreEqual(ResultType.Warning, result.ResultRules.First().Type);
            Assert.AreEqual("11", result.ResultRules.First().Tokens[0]);
            Assert.AreEqual("0", result.ResultRules.First().Tokens[1]);
            Assert.AreEqual("0", result.ResultRules.First().Tokens[2]);
            Assert.AreEqual("11", result.ResultRules.First().Tokens[3]);
            Assert.AreEqual("0", result.ResultRules.First().Tokens[4]);
            Assert.AreEqual("10", result.ResultRules.First().Tokens[5]);
            Assert.AreEqual("15", result.ResultRules.First().Tokens[6]);
            Assert.AreEqual("more_than_maximum_calls", result.ResultRules.First().Alias);
        }
Ejemplo n.º 4
0
        public void Analyse_OnExecuteWithNullParameter_ThrowArgumentNullException()
        {
            var analyzer = new AdditionalCallAnalyzer(new OptionHelper());

            analyzer.Analyse(null);
        }