public bool CheckForAndReportBrowserConsoleLogErrors(bool failOnErrors = false)
        {
            ILogs logsObject = webDriver.Manage().Logs;
            ReadOnlyCollection <LogEntry> logsCollection = logsObject.GetLog("browser");

            bool errors = false;

            foreach (LogEntry logEntry in logsCollection)
            {
                if (logEntry.Level == LogLevel.Severe)
                {
                    errors = true;
                    Console.WriteLine("Severe Browser Errors enountered:");
                    break;
                }
            }

            foreach (LogEntry logEntry in logsCollection)
            {
                if (logEntry.Level == LogLevel.Severe)
                {
                    Console.WriteLine(string.Format("{0}: {1}: {2}", logEntry.Timestamp, logEntry.Level, logEntry.Message));
                }
            }

            if (failOnErrors)
            {
                errors.Should().BeFalse();
            }

            return(errors);
        }
Example #2
0
            public static ILogs ExchangeInstance(ILogs logs)
            {
                ILogs oldLogs = To;

                To = logs ?? NullLogs.Instance;
                return(oldLogs);
            }
 public SysTemplateController(ILogs logs, IHostingEnvironment environment)
 {
     _sysTemplate        = new SysTemplateService();
     _sysTemplateDetails = new SysTemplateDetailsService();
     _logs        = logs;
     _environment = environment;
 }
        // This listens for any `console.log` messages.
        // Since we pipe messages from managed code, and console.* to the websocket,
        // this wouldn't normally get much. But listening on this to catch any messages
        // that we miss piping to the websocket.
        private void RunSeleniumLogMessagePump(IWebDriver driver, CancellationToken token)
        {
            try
            {
                ILogs logs = driver.Manage().Logs;
                while (!token.IsCancellationRequested)
                {
                    foreach (var logType in logs.AvailableLogTypes)
                    {
                        foreach (var logEntry in logs.GetLog(logType))
                        {
                            if (logEntry.Level == SeleniumLogLevel.Severe)
                            {
                                // throw on driver errors, or other errors that show up
                                // in the console log
                                throw new ArgumentException(logEntry.Message);
                            }

                            var    match = s_consoleLogRegex.Match(Regex.Unescape(logEntry.Message));
                            string msg   = match.Success ? match.Groups[1].Value : logEntry.Message;
                            _logger.LogDebug($"{logType}: {msg}");
                        }
                    }
                }
            }
            catch (WebDriverException wde) when(wde.Message.Contains("timed out after"))
            {
            }
            catch (Exception ex)
            {
                _logger.LogDebug($"Failed trying to read log messages via selenium: {ex}");
                throw;
            }
        }
 /// <summary>
 /// Inserts a collection of log entries, each in a specific JSON format.
 /// </summary>
 /// <remarks>
 /// Required permissions: Logs.Create.
 ///
 /// Example of log entry:
 /// {
 /// "message": "TTT execution started",
 /// "level": "Information",
 /// "timeStamp": "2017-01-18T14:46:07.4152893+02:00",
 /// "windowsIdentity": "DESKTOP-1L50L0P\\WindowsUser",
 /// "agentSessionId": "00000000-0000-0000-0000-000000000000",
 /// "processName": "TTT",
 /// "fileName": "Main",
 /// "jobId": "8066c309-cef8-4b47-9163-b273fc14cc43"
 /// }
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='logEntries'>
 /// Collection of string representations of JSON objects
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> SubmitLogsAsync(this ILogs operations, IList <string> logEntries, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
 {
     using (var _result = await operations.SubmitLogsWithHttpMessagesAsync(logEntries, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Example #6
0
 public AppRunner(IMLaunchProcessManager processManager,
                  IHardwareDeviceLoader hardwareDeviceLoader,
                  ISimulatorLoader simulatorLoader,
                  ISimpleListenerFactory simpleListenerFactory,
                  ICrashSnapshotReporterFactory snapshotReporterFactory,
                  ICaptureLogFactory captureLogFactory,
                  IDeviceLogCapturerFactory deviceLogCapturerFactory,
                  ITestReporterFactory reporterFactory,
                  IFileBackedLog mainLog,
                  ILogs logs,
                  IHelpers helpers,
                  bool useXmlOutput,
                  Action <string>?logCallback = null)
 {
     _processManager           = processManager ?? throw new ArgumentNullException(nameof(processManager));
     _hardwareDeviceLoader     = hardwareDeviceLoader ?? throw new ArgumentNullException(nameof(hardwareDeviceLoader));
     _simulatorLoader          = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
     _listenerFactory          = simpleListenerFactory ?? throw new ArgumentNullException(nameof(simpleListenerFactory));
     _snapshotReporterFactory  = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
     _captureLogFactory        = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
     _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
     _testReporterFactory      = reporterFactory ?? throw new ArgumentNullException(nameof(_testReporterFactory));
     _logs         = logs ?? throw new ArgumentNullException(nameof(logs));
     _helpers      = helpers ?? throw new ArgumentNullException(nameof(helpers));
     _useXmlOutput = useXmlOutput;
     if (logCallback == null)
     {
         _mainLog = mainLog ?? throw new ArgumentNullException(nameof(mainLog));
     }
     else
     {
         // create using the main as the default log
         _mainLog = Log.CreateReadableAggregatedLog(mainLog, new CallbackLog(logCallback));
     }
 }
Example #7
0
 public Job(IConfiguration configuration, IDbHelper dbHelper, IFtpService ftpService, ILogs logs)
 {
     _configuration = configuration;
     _dbHelper      = dbHelper;
     _ftpService    = ftpService;
     _logs          = logs;
 }
Example #8
0
        private readonly IEnumerable <string> _appArguments; // Arguments that will be passed to the iOS application

        public AppTester(
            IMlaunchProcessManager processManager,
            IHardwareDeviceLoader hardwareDeviceLoader,
            ISimulatorLoader simulatorLoader,
            ISimpleListenerFactory simpleListenerFactory,
            ICrashSnapshotReporterFactory snapshotReporterFactory,
            ICaptureLogFactory captureLogFactory,
            IDeviceLogCapturerFactory deviceLogCapturerFactory,
            ITestReporterFactory reporterFactory,
            IResultParser resultParser,
            IFileBackedLog mainLog,
            ILogs logs,
            IHelpers helpers,
            IEnumerable <string> appArguments,
            Action <string>?logCallback = null)
            : base(processManager, hardwareDeviceLoader, captureLogFactory, logs, mainLog, logCallback)
        {
            _processManager           = processManager ?? throw new ArgumentNullException(nameof(processManager));
            _simulatorLoader          = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
            _listenerFactory          = simpleListenerFactory ?? throw new ArgumentNullException(nameof(simpleListenerFactory));
            _snapshotReporterFactory  = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
            _captureLogFactory        = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
            _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
            _testReporterFactory      = reporterFactory ?? throw new ArgumentNullException(nameof(_testReporterFactory));
            _resultParser             = resultParser ?? throw new ArgumentNullException(nameof(resultParser));
            _mainLog      = mainLog ?? throw new ArgumentNullException(nameof(mainLog));
            _logs         = logs ?? throw new ArgumentNullException(nameof(logs));
            _helpers      = helpers ?? throw new ArgumentNullException(nameof(helpers));
            _appArguments = appArguments;
        }
Example #9
0
 public AppRunner(IProcessManager processManager,
     IHardwareDeviceLoader hardwareDeviceLoader,
     ISimulatorLoader simulatorLoader,
     ISimpleListenerFactory simpleListenerFactory,
     ICrashSnapshotReporterFactory snapshotReporterFactory,
     ICaptureLogFactory captureLogFactory,
     IDeviceLogCapturerFactory deviceLogCapturerFactory,
     ITestReporterFactory reporterFactory,
     ILog mainLog,
     ILogs logs,
     IHelpers helpers,
     bool useXmlOutput)
 {
     _processManager = processManager ?? throw new ArgumentNullException(nameof(processManager));
     _hardwareDeviceLoader = hardwareDeviceLoader ?? throw new ArgumentNullException(nameof(hardwareDeviceLoader));
     _simulatorLoader = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
     _listenerFactory = simpleListenerFactory ?? throw new ArgumentNullException(nameof(simpleListenerFactory));
     _snapshotReporterFactory = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
     _captureLogFactory = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
     _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
     _testReporterFactory = reporterFactory ?? throw new ArgumentNullException(nameof(_testReporterFactory));
     _mainLog = mainLog ?? throw new ArgumentNullException(nameof(mainLog));
     _logs = logs ?? throw new ArgumentNullException(nameof(logs));
     _helpers = helpers ?? throw new ArgumentNullException(nameof(helpers));
     _useXmlOutput = useXmlOutput;
 }
        public static void TryLogContext(this IWebDriver webDriver)
        {
            if (webDriver == null)
            {
                throw new ArgumentNullException(nameof(webDriver));
            }
            try {
                TestContext.WriteLine($"Current URL: {webDriver.Url}");
                TestContext.WriteLine($"Current HTML: {webDriver.PageSource}");
            }
            catch (Exception ex) {
                TestContext.WriteLine($"Unable to log contextual info: {ex}");
            }

            try {
                ILogs logs = webDriver.Manage().Logs;

                foreach (string logType in logs.AvailableLogTypes)
                {
                    TestContext.WriteLine($"Browser log: {logType}");

                    foreach (LogEntry logEntry in logs.GetLog(logType))
                    {
                        TestContext.WriteLine($"\t[{logEntry.Level}] [{logEntry.Timestamp:s}] {logEntry.Message}");
                    }
                }
            }
            catch (Exception ex) {
                TestContext.WriteLine($"Unable to log browser log info: {ex}");
            }
        }
Example #11
0
    public RunOrchestrator(
        IAppBundleInformationParser appBundleInformationParser,
        IAppInstaller appInstaller,
        IAppUninstaller appUninstaller,
        IAppRunnerFactory appRunnerFactory,
        IDeviceFinder deviceFinder,
        IiOSExitCodeDetector iOSExitCodeDetector,
        IMacCatalystExitCodeDetector macCatalystExitCodeDetector,
        ILogger consoleLogger,
        ILogs logs,
        IFileBackedLog mainLog,
        IErrorKnowledgeBase errorKnowledgeBase,
        IDiagnosticsData diagnosticsData,
        IHelpers helpers)
        : base(appBundleInformationParser, appInstaller, appUninstaller, deviceFinder, consoleLogger, logs, mainLog, errorKnowledgeBase, diagnosticsData, helpers)
    {
        _iOSExitCodeDetector         = iOSExitCodeDetector ?? throw new ArgumentNullException(nameof(iOSExitCodeDetector));
        _macCatalystExitCodeDetector = macCatalystExitCodeDetector ?? throw new ArgumentNullException(nameof(macCatalystExitCodeDetector));
        _logger             = consoleLogger ?? throw new ArgumentNullException(nameof(consoleLogger));
        _logs               = logs ?? throw new ArgumentNullException(nameof(logs));
        _errorKnowledgeBase = errorKnowledgeBase ?? throw new ArgumentNullException(nameof(errorKnowledgeBase));

        // Only add the extra callback if we do know that the feature was indeed enabled
        Action <string>?logCallback = IsLldbEnabled() ? (l) => NotifyUserLldbCommand(_logger, l) : null;

        _appRunner = appRunnerFactory.Create(mainLog, logs, logCallback);
    }
Example #12
0
 public ITestReporter Create(IFileBackedLog mainLog,
                             IReadableLog runLog,
                             ILogs logs,
                             ICrashSnapshotReporter crashReporter,
                             ISimpleListener simpleListener,
                             IResultParser parser,
                             AppBundleInformation appInformation,
                             RunMode runMode,
                             XmlResultJargon xmlJargon,
                             string?device,
                             TimeSpan timeout,
                             string?additionalLogsDirectory  = null,
                             ExceptionLogger?exceptionLogger = null,
                             bool generateHtml = false) => new TestReporter(_processManager,
                                                                            mainLog,
                                                                            runLog,
                                                                            logs,
                                                                            crashReporter,
                                                                            simpleListener,
                                                                            parser,
                                                                            appInformation,
                                                                            runMode,
                                                                            xmlJargon,
                                                                            device,
                                                                            timeout,
                                                                            additionalLogsDirectory,
                                                                            exceptionLogger,
                                                                            generateHtml);
Example #13
0
 /// <summary>
 /// Create a new log.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='body'>
 /// The log object to create.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CreateLogResult> CreateAsync(this ILogs operations, CreateLog body = default(CreateLog), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateWithHttpMessagesAsync(body, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Example #14
0
        private readonly IEnumerable <string> _appArguments; // Arguments that will be passed to the iOS application

        public AppRunner(
            IMlaunchProcessManager processManager,
            IHardwareDeviceLoader hardwareDeviceLoader,
            ISimulatorLoader simulatorLoader,
            ICrashSnapshotReporterFactory snapshotReporterFactory,
            ICaptureLogFactory captureLogFactory,
            IDeviceLogCapturerFactory deviceLogCapturerFactory,
            IExitCodeDetector exitCodeDetector,
            IFileBackedLog mainLog,
            ILogs logs,
            IHelpers helpers,
            IEnumerable <string> appArguments,
            Action <string>?logCallback = null)
            : base(hardwareDeviceLoader, mainLog, logCallback)
        {
            _processManager           = processManager ?? throw new ArgumentNullException(nameof(processManager));
            _simulatorLoader          = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
            _snapshotReporterFactory  = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
            _captureLogFactory        = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
            _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
            _exitCodeDetector         = exitCodeDetector ?? throw new ArgumentNullException(nameof(exitCodeDetector));
            _logs         = logs ?? throw new ArgumentNullException(nameof(logs));
            _helpers      = helpers ?? throw new ArgumentNullException(nameof(helpers));
            _appArguments = appArguments;
        }
 public CaptureLog(ILogs logs, string path, string capture_path, bool entire_file = false)
     : base(logs)
 {
     Path            = path ?? throw new ArgumentNullException(nameof(path));
     CapturePath     = capture_path ?? throw new ArgumentNullException(nameof(path));
     this.entireFile = entire_file;
 }
Example #16
0
 /// <summary>
 /// Fetch a list of logs.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <IList <Log> > GetAllAsync(this ILogs operations, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetAllWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public CPApiController(ILogs logs
                               , IConfiguration configuration
                               , SysTemplateDetailService templateDetailService
                               , SysTemplateService templateService
                               , SysTemplatePropertyService templatePropertyService
                               , CPMenuService menuService
                               , CPUserService userService
                               , CPRoleService roleService
                               , CPLangService langService
                               , Security security)
        {
            _configuration          = configuration;
            _logs                   = logs;
            _menu                   = new WebMenu();
            _security               = security;
            _templateDetailsService = templateDetailService;
            _templateService        = templateService;
            _menuService            = menuService;
            _propertyService        = templatePropertyService;
            _userService            = userService;
            _roleService            = roleService;
            _langService            = langService;

            _currentLang = StartUp.CurrentLang;
        }
Example #18
0
 public ITestReporter Create(ILog mainLog,
                             ILog runLog,
                             ILogs logs,
                             ICrashSnapshotReporter crashReporter,
                             ISimpleListener simpleListener,
                             IResultParser parser,
                             AppBundleInformation appInformation,
                             RunMode runMode,
                             XmlResultJargon xmlJargon,
                             string device,
                             TimeSpan timeout,
                             string additionalLogsDirectory  = null,
                             ExceptionLogger exceptionLogger = null)
 {
     return(new TestReporter(processManager,
                             mainLog,
                             runLog,
                             logs,
                             crashReporter,
                             simpleListener,
                             parser,
                             appInformation,
                             runMode,
                             xmlJargon,
                             device,
                             timeout,
                             additionalLogsDirectory,
                             exceptionLogger));
 }
 public CPApiController(ILogs logs
                        , IConfiguration configuration
                        , CPMenuService menuService
                        , CPUserService userService
                        , CPRoleService roleService
                        , CPLangService langService
                        , Security security
                        , ModLessonService lessonService
                        , ModLessonPartService lessonPartService
                        , ModLessonExtendService lessonExtendService
                        , ModLessonPartAnswerService answerService
                        , CPLoginLogService loginLogService
                        , FileProcess fileProcess)
 {
     _configuration        = configuration;
     _logs                 = logs;
     _menu                 = new WebMenu();
     _security             = security;
     _menuService          = menuService;
     _userService          = userService;
     _roleService          = roleService;
     _langService          = langService;
     _lessionService       = lessonService;
     _lessionPartService   = lessonPartService;
     _lessionExtendService = lessonExtendService;
     _loginLogService      = loginLogService;
     _answerService        = answerService;
     _fileProcess          = fileProcess;
     _currentLang          = StartUp.CurrentLang;
     _currentUser          = StartUp.CurrentUser;
 }
Example #20
0
        public async Task <ILogFile> SymbolicateCrashReportAsync(ILogs logs, ILog log, ILogFile report)
        {
            var symbolicatecrash = Path.Combine(XcodeRoot, "Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash");

            if (!File.Exists(symbolicatecrash))
            {
                symbolicatecrash = Path.Combine(XcodeRoot, "Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash");
            }

            if (!File.Exists(symbolicatecrash))
            {
                log.WriteLine("Can't symbolicate {0} because the symbolicatecrash script {1} does not exist", report.Path, symbolicatecrash);
                return(report);
            }

            var name         = Path.GetFileName(report.Path);
            var symbolicated = logs.Create(Path.ChangeExtension(name, ".symbolicated.log"), $"Symbolicated crash report: {name}", timestamp: false);
            var environment  = new Dictionary <string, string> {
                { "DEVELOPER_DIR", Path.Combine(XcodeRoot, "Contents", "Developer") }
            };
            var rv = await ProcessManager.ExecuteCommandAsync(symbolicatecrash, new [] { report.Path }, symbolicated, TimeSpan.FromMinutes(1), environment);

            if (rv.Succeeded)
            {
                ;
                log.WriteLine("Symbolicated {0} successfully.", report.Path);
                return(symbolicated);
            }
            else
            {
                log.WriteLine("Failed to symbolicate {0}.", report.Path);
                return(report);
            }
        }
Example #21
0
        public CrashSnapshotReporter(IMlaunchProcessManager processManager,
                                     ILog log,
                                     ILogs logs,
                                     bool isDevice,
                                     string deviceName,
                                     Func <string> tempFileProvider = null)
        {
            _processManager   = processManager ?? throw new ArgumentNullException(nameof(processManager));
            _log              = log ?? throw new ArgumentNullException(nameof(log));
            _logs             = logs ?? throw new ArgumentNullException(nameof(logs));
            _isDevice         = isDevice;
            _deviceName       = deviceName;
            _tempFileProvider = tempFileProvider ?? Path.GetTempFileName;

            _symbolicateCrashPath = Path.Combine(processManager.XcodeRoot, "Contents", "SharedFrameworks", "DTDeviceKitBase.framework", "Versions", "A", "Resources", "symbolicatecrash");
            if (!File.Exists(_symbolicateCrashPath))
            {
                _symbolicateCrashPath = Path.Combine(processManager.XcodeRoot, "Contents", "SharedFrameworks", "DVTFoundation.framework", "Versions", "A", "Resources", "symbolicatecrash");
            }

            if (!File.Exists(_symbolicateCrashPath))
            {
                _symbolicateCrashPath = null;
            }
        }
Example #22
0
 public CPAccountsController(IHostingEnvironment environment)
 {
     _hostingEnvironment = environment;
     _userService        = new CPUserService();
     _loginLogService    = new CPLoginLogService();
     _roleService        = new CPRoleService();
     _ilogs = new Logs(_hostingEnvironment.WebRootPath);
 }
Example #23
0
        public static void Shutdown()
        {
            ILogs logs = To;

            To = NullLogs.Instance;

            logs.Dispose();
        }
Example #24
0
 public SysTemplateController(ILogs logs, IHostingEnvironment environment, SysTemplateService templateService
                              , SysTemplateDetailService templateDetailService)
 {
     _sysTemplate        = templateService;
     _sysTemplateDetails = templateDetailService;
     _logs        = logs;
     _environment = environment;
 }
Example #25
0
 public LogFile(ILogs logs, string description, string path, bool append = true)
     : base(logs, description)
 {
     Path = path ?? throw new ArgumentNullException(nameof(path));
     if (!append)
     {
         File.WriteAllText(path, string.Empty);
     }
 }
Example #26
0
        public static void Init(ILogs logs)
        {
            if ((To != null) && (To != NullLogs.Instance))
            {
                throw new Exception("The log is already initiated!");
            }

            To = logs ?? NullLogs.Instance;
        }
Example #27
0
 public virtual void Reset()
 {
     test_log        = null;
     failure_message = null;
     logs            = null;
     duration.Reset();
     execution_result = TestExecutingResult.NotStarted;
     execute_task     = null;
 }
Example #28
0
 public OperationResultWithLogs(ILogs logs) : this()
 {
     Logs = logs?.Logs ?? new List <string>();
     if (logs is IOperationResult op)
     {
         StatusCode    = op.StatusCode;
         StatusMessage = op.StatusMessage;
     }
 }
Example #29
0
 public LogFile(ILogs logs, string description, string path, bool append = true)
     : base(logs, description)
 {
     Path = path;
     if (!append)
     {
         File.WriteAllText(path, string.Empty);
     }
 }
Example #30
0
 public MainPageViewModel(INavigationService navigationService, IPageDialogService dialogService,
                          ILogs logs, IStorage storage)
     : base(navigationService)
 {
     _navigationService = navigationService;
     _dialogService     = dialogService;
     _logsRepository    = logs;
     _storage           = storage;
     Title = "Login Page";
 }