summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.iOS.UITests/Utilities/Logger.cs
blob: ed0041ae00569771603ed18f9a789ecb56fc2be8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.IO;
using System.Reflection;

using Xamarin.UITest.Queries;

namespace Xamarin.Forms.Core.UITests
{
	internal static class Logger
	{
		static StreamWriter queryWriter;

		public static void Init ()
		{
			queryWriter = new StreamWriter ("../../Xamarin.Forms.Core-UITest-queries.log", false);	
		}

		public static void Log (string text)
		{
			queryWriter.Write (text);
		}

		public static void LogLine (string text = "")
		{
			queryWriter.WriteLine (text);
		}

		public static void Close ()
		{
			queryWriter.Flush ();
			queryWriter.Close ();
		}

		public static void LogQueryResult (AppResult[] resultsForQuery)
		{
			foreach (AppResult result in resultsForQuery)
				WriteAppResult (result);
		}

		static void WriteAppResult (AppResult appResult)
		{
			var classText = string.Format ("  {0, -10} : {1}", "Class", appResult.Class);
			var descriptionText = string.Format ("  {0, -10} : {1}", "Description", appResult.Description);
			var enabledText = string.Format ("  {0, -10} : {1}", "Enabled", appResult.Enabled);
			var idText = string.Format ("  {0, -10} : {1}", "Id", appResult.Id);
			var labelText = string.Format ("  {0, -10} : {1}", "Label", appResult.Id);
			var textText = string.Format ("  {0, -10} : {1}", "Text", appResult.Text);
			
			var rectText = string.Format ("  {0, -10}", "Rect");
			var rectContentsText = string.Format ("    [X:{0} Y:{1} W:{2} H:{3}] [CX:{4} CY:{5}]", 
				appResult.Rect.X,
				appResult.Rect.Y,
				appResult.Rect.Width,
				appResult.Rect.Height,
				appResult.Rect.CenterX,
				appResult.Rect.CenterY
			);

			queryWriter.WriteLine (classText);
			queryWriter.WriteLine (descriptionText);
			queryWriter.WriteLine (enabledText);
			queryWriter.WriteLine (idText);
			queryWriter.WriteLine (labelText);
			queryWriter.WriteLine (textText);
			queryWriter.WriteLine (rectText);
			queryWriter.WriteLine (rectContentsText);
			queryWriter.WriteLine();
		}

	}
}