Fixing previous commit (forgot build script).
[castle.git] / MonoRail / Castle.MonoRail.Views.Brail.Tests / BrailPreProcessorFixture.cs
blobb71dc3e9f24a6759ce85a27be99b5d26a806571d
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 private static string RunThroughPreProcessor(string code)
42 BrailPreProcessor ppc = new BrailPreProcessor(new BooViewEngine());
43 CompilerContext context = new CompilerContext();
44 context.Parameters.Input.Add(new StringInput("test", code));
45 ppc.Initialize(context);
46 ppc.Run();
47 return context.Parameters.Input[0].Open().ReadToEnd();