Minor style changes
[castle.git] / MonoRail / Castle.MonoRail.Views.Brail.Tests / BrailPreProcessorFixture.cs
blob451999ebd8e21976c6109666d4a221e6f4564446
1 // Copyright 2004-2007 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.MonoRail.Views.Brail.Tests
17 using Boo.Lang.Compiler;
18 using Boo.Lang.Compiler.IO;
19 using NUnit.Framework;
21 [TestFixture]
22 public class BrailPreProcessorFixture
24 [Test]
25 public void MR_248_PreProcessorBugWithRegardToNestedExpressions()
27 string code =
28 @"<script type='text/javascript'>
29 Event.observe(window, 'load', function() { ${controlIdToFocus}.focus(); });
30 </script>";
31 string expected = "output \"\"\"<script type='text/javascript'>\r\n" +
32 " Event.observe(window, 'load', function() { \"\"\"\r\n" +
33 "output controlIdToFocus\r\n" +
34 "output \"\"\".focus(); });\r\n" +
35 "</script>\"\"\"\r\n" ;
36 string s = RunThroughPreProcessor(code);
37 Assert.AreEqual(expected, s);
40 [Test]
41 public void TrimWhitespaceAroundMinusBlocks()
43 string code =
44 @"Foo
45 <% Hi -%>
46 Bar
47 <% Yadda %>
48 Blah";
49 string expected = "output \"\"\"Foo\r\n \"\"\"\r\n" +
50 " Hi \r\n" +
51 "output \"\"\"Bar\r\n \"\"\"\r\n" +
52 " Yadda \r\n" +
53 "output \"\"\"\r\nBlah\"\"\"\r\n";
54 string s = RunThroughPreProcessor(code);
55 Assert.AreEqual(expected, s);
58 private static string RunThroughPreProcessor(string code)
60 BrailPreProcessor ppc = new BrailPreProcessor(new BooViewEngine());
61 CompilerContext context = new CompilerContext();
62 context.Parameters.Input.Add(new StringInput("test", code));
63 ppc.Initialize(context);
64 ppc.Run();
65 return context.Parameters.Input[0].Open().ReadToEnd();