Exemplo n.º 1
0
        private void TryCleanTempFolder(string tempFolder)
        {
            if (String.IsNullOrEmpty(tempFolder) || Directory.Exists(tempFolder) == false)
            {
                return;
            }

            long          s      = GetDirectorySize(tempFolder);
            IConfigGetter getter = ConfigProvider.Instance.GetConfigGetter("MSFast.Global");
            int           max    = Math.Min(1024, (Math.Max(16, getter.GetInt(MSFastGlobalConfigKeys.DUMP_MAX_SIZE))));

            max = max * 1024 * 1024;
            if (s > max)
            {
                string[] a = Directory.GetFiles(tempFolder, "*.*", SearchOption.TopDirectoryOnly);
                try
                {
                    foreach (string name in a)
                    {
                        File.Delete(name);
                    }
                }
                catch
                {
                }
            }
        }
Exemplo n.º 2
0
        private void Reset()
        {
            IConfigGetter getter = ConfigProvider.Instance.GetConfigGetter("MSFast.Global");

            if (getter != null)
            {
                //String tempFolder = getter.GetString(MSFastGlobalConfigKeys.TEMP_FOLDER);
                String dumpFolder = getter.GetString(MSFastGlobalConfigKeys.DUMP_FOLDER);

                this.txtCPDumpFolder.Text = dumpFolder;
                this.txtCPProxyPort.Text  = getter.GetString(MSFastGlobalConfigKeys.DEFAULT_PROXY_PORT);

                this.chkCPClearCache.Checked      = getter.GetBoolean(MSFastGlobalConfigKeys.CLEAR_CACHE_BEFORE_TEST);
                this.chkCPIPageValidation.Checked = getter.GetBoolean(MSFastGlobalConfigKeys.PAGE_VALIDATION);
                this.chkCPIPageGraph.Checked      = getter.GetBoolean(MSFastGlobalConfigKeys.PAGE_GRAPH);

                this.numDumpSize.Value = Math.Min(1024, (Math.Max(16, getter.GetInt(MSFastGlobalConfigKeys.DUMP_MAX_SIZE))));
            }

            FormSet();
        }
Exemplo n.º 3
0
        private void StartTest()
        {
            if (isRunning)
            {
                return;
            }

            if (this.browser == null || this.browser.State != BrowserStatus.Ready)
            {
                throw new Exception("Invalid Browser");
            }

            if (pageDataCollector != null)
            {
                return;
            }

            String url = browser.URL;

            if (String.IsNullOrEmpty(url))
            {
                throw new Exception("Invalid Browser");
            }
            if (url.ToLower().StartsWith("http:") == false)
            {
                MessageBox.Show("Tests are currently available for pages with an \"http://\" address only...", "Sorry...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            pageDataCollector = new AsyncBufferPageDataCollector();
            pageDataCollector.OnStartingTest += new AsyncBufferPageDataCollector.StartingTestEventHandler(tm_OnStartingTest);
            pageDataCollector.OnTestEnded    += new AsyncBufferPageDataCollector.TestEndedEventHandler(tm_OnTestEnded);
            pageDataCollector.OnTestEvent    += new OnTestEventHandler(pageDataCollector_OnTestEvent);
            IConfigGetter getter = ConfigProvider.Instance.GetConfigGetter("MSFast.Global");

            if (getter == null ||
                String.IsNullOrEmpty(getter.GetString(MSFastGlobalConfigKeys.TEMP_FOLDER)))
            {
                tm_OnTestEnded(pageDataCollector, null, false, PageDataCollectorErrors.InvalidConfiguration, -1);
            }

            if (browser.GetBuffer(new Browser.GetBufferCallback(delegate(String buffer)
            {
                if (pageDataCollector != null && String.IsNullOrEmpty(buffer) == false && String.IsNullOrEmpty(url) == false)
                {
                    int[] pp = GetProxyPorts();

                    if (pp == null)
                    {
                        tm_OnTestEnded(pageDataCollector, null, false, PageDataCollectorErrors.InvalidOrMissingArguments, -1);
                        return;
                    }

                    if (proxyRangeOffset >= pp.Length)
                    {
                        proxyRangeOffset = 0;
                    }

                    BufferedPageDataCollectorStartInfo b = new BufferedPageDataCollectorStartInfo();
                    b.URL = url;
                    b.CollectionID = Math.Max(1, getter.GetInt(MSFastGlobalConfigKeys.LAST_COLLECTION_ID));

                    IConfigSetter setter = ConfigProvider.Instance.GetConfigSetter("MSFast.Global");
                    setter.SetInt(MSFastGlobalConfigKeys.LAST_COLLECTION_ID, b.CollectionID + 1);

                    String tempFolder = getter.GetString(MSFastGlobalConfigKeys.TEMP_FOLDER);

                    TryCleanTempFolder(tempFolder);

                    b.CollectionType = CollectPageInformation.Download_Proxy | CollectPageInformation.Performance | CollectPageInformation.Render;

                    if (getter.GetBoolean(MSFastGlobalConfigKeys.PAGE_GRAPH))
                    {
                        b.CollectionType |= CollectPageInformation.Screenshots_Small;
                    }

                    if (getter.GetBoolean(MSFastGlobalConfigKeys.CLEAR_CACHE_BEFORE_TEST))
                    {
                        b.CollectionType |= CollectPageInformation.ClearCache;
                    }

                    b.Buffer = buffer;
                    b.ClearCache = getter.GetBoolean(MSFastGlobalConfigKeys.CLEAR_CACHE_BEFORE_TEST);
                    b.TempFolder = tempFolder;
                    b.DumpFolder = tempFolder;
                    b.ProxyPort = GetProxyPorts()[proxyRangeOffset];
                    b.IsDebug = false;

                    pageDataCollector.StartTest(b);
                }
                else
                {
                    tm_OnTestEnded(pageDataCollector, null, false, PageDataCollectorErrors.InvalidOrMissingArguments, -1);
                }
            })) == false)
            {
                tm_OnTestEnded(pageDataCollector, null, false, PageDataCollectorErrors.Unknown, -1);
            }
        }