File: Default.aspx.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (123 lines) | stat: -rw-r--r-- 3,684 bytes parent folder | download | duplicates (10)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Compilation;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
	protected void Page_Load (object sender, EventArgs e)
	{
		List<string> messages = new List<string> ();
		AppDomain ad = AppDomain.CurrentDomain;

		try {
			RunTest ("myFile.cache", "1", messages);

			// Subdirs not allowed
			RunTest ("subdir/myFile.cache", "2", messages);

			// File doesn't exist
			RunTest ("myAnotherFile.cache", "3", messages, true);

			//
			RunTest (null, "4", messages);

			RunTest (String.Empty, "5", messages);

			var sb = new StringBuilder ();
			foreach (string s in messages)
				sb.AppendLine (s);

			log.InnerText = sb.ToString ();
		} finally {
			ad.SetData ("TestRunData", messages);
		}
	}

	void Log (List<string> messages, string format, params object [] parms)
	{
		if (parms == null || parms.Length == 0)
			messages.Add (format);
		else
			messages.Add (String.Format (format, parms));
	}

	void RunTest (string fileName, string logTag, List <string> messages, bool noCreate = false)
	{
		string codeGenDir = null;
		if (!noCreate) {
			try {
				codeGenCreate.InnerText = codeGenDir = HttpRuntime.CodegenDir;
				Log (messages, "create[{0}]: codeGen", logTag);
			} catch (Exception ex) {
				Log (messages, "create[{0}]: error codeGen ({1})", logTag, ex.GetType ());
			}

			try {
				using (FileStream st = BuildManager.CreateCachedFile (fileName) as FileStream) {
					if (st != null) {
						string path = st.Name;
						Log (messages, "create[{0}]: fileStream", logTag);
						filePathCreate.InnerText = path;

						Log (messages, "create[{0}]: can{1} read", logTag, st.CanRead ? String.Empty : "not");
						Log (messages, "create[{0}]: can{1} write", logTag, st.CanWrite ? String.Empty : "not");

						if (codeGenDir != null && path.StartsWith (codeGenDir))
							Log (messages, "create[{0}]: pathSubdirOfCodeGen", logTag);

						if (Path.GetFileName (path) == fileName)
							Log (messages, "create[{0}]: our file name", logTag);
						using (var sw = new StreamWriter (st)) {
							sw.Write ("test");
						}
					} else
						Log (messages, "create[{0}]: stream is null", logTag);
				}
			} catch (Exception ex) {
				Log (messages, "create[{0}]: error write ({1})", logTag, ex.GetType ());
			}
		}

		try {
			codeGenRead.InnerText = codeGenDir = HttpRuntime.CodegenDir;
			Log (messages, "read[{0}]: codeGen", logTag);
		} catch (Exception ex) {
			Log (messages, "read[{0}]: error codeGen ({1})", logTag, ex.GetType ());
		}

		try {
			using (FileStream st = BuildManager.ReadCachedFile (fileName) as FileStream) {
				if (st != null) {
					string path = st.Name;
					Log (messages, "read[{0}]: fileStream", logTag);
					filePathRead.InnerText = path;

					Log (messages, "read[{0}]: can{1} read", logTag, st.CanRead ? String.Empty : "not");
					Log (messages, "read[{0}]: can{1} write", logTag, st.CanWrite ? String.Empty : "not");

					if (codeGenDir != null && path.StartsWith (codeGenDir))
						Log (messages, "read[{0}]: pathSubdirOfCodeGen", logTag);

					if (Path.GetFileName (path) == fileName)
						Log (messages, "read[{0}]: our file name", logTag);

					string contents;
					using (var sr = new StreamReader (st)) {
						contents = sr.ReadToEnd ();
					}

					if (contents != null && contents == "test")
						Log (messages, "read[{0}]: contents ok", logTag);
				} else
					Log (messages, "read[{0}]: stream is null", logTag);
			}
		} catch (Exception ex) {
			Log (messages, "read[{0}]: error read ({1})", logTag, ex.GetType ());
		}
	}
}