From 95decc49d450b288c8c9a61beccb36b2a2fccba6 Mon Sep 17 00:00:00 2001 From: ayende Date: Sat, 9 Jun 2007 23:26:42 +0000 Subject: [PATCH] Adding a test for MR-264 git-svn-id: https://svn.castleproject.org/svn/castle/trunk@3916 73e77b4c-caa6-f847-a29a-24ab75ae54b6 --- MonoRail/Castle.MonoRail-vs2005.resharper | 4 - .../JSGenerationTestCase.cs | 341 +++++++++++---------- .../Controllers/JSGenerationController.cs | 5 + MonoRail/TestSiteBrail/TestSiteBrail.csproj | 2 + .../TestSiteBrail/Views/jsgeneration/mr264.brailjs | 2 + .../Views/jsgeneration/mr264_partial.brail | 1 + 6 files changed, 185 insertions(+), 170 deletions(-) rewrite MonoRail/Castle.MonoRail.Views.Brail.Tests/JSGenerationTestCase.cs (84%) create mode 100644 MonoRail/TestSiteBrail/Views/jsgeneration/mr264.brailjs create mode 100644 MonoRail/TestSiteBrail/Views/jsgeneration/mr264_partial.brail diff --git a/MonoRail/Castle.MonoRail-vs2005.resharper b/MonoRail/Castle.MonoRail-vs2005.resharper index 3547dd0b3..af0007762 100644 --- a/MonoRail/Castle.MonoRail-vs2005.resharper +++ b/MonoRail/Castle.MonoRail-vs2005.resharper @@ -13,8 +13,4 @@ - - EXTERNAL - ..\ReSharper.CodingStyle.xml - \ No newline at end of file diff --git a/MonoRail/Castle.MonoRail.Views.Brail.Tests/JSGenerationTestCase.cs b/MonoRail/Castle.MonoRail.Views.Brail.Tests/JSGenerationTestCase.cs dissimilarity index 84% index 7ce991048..4e19e3457 100644 --- a/MonoRail/Castle.MonoRail.Views.Brail.Tests/JSGenerationTestCase.cs +++ b/MonoRail/Castle.MonoRail.Views.Brail.Tests/JSGenerationTestCase.cs @@ -1,166 +1,175 @@ -// Copyright 2004-2007 Castle Project - http://www.castleproject.org/ -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -namespace Castle.MonoRail.Views.Brail.Tests -{ - using Castle.MonoRail.Framework.Tests; - using NUnit.Framework; - - [TestFixture] - public class JSGenerationTestCase : AbstractTestCase - { - #region Stock operations - - [Test] - public void ReplaceHtml() - { - DoGet("jsgeneration/replacehtml.rails"); - AssertSuccess(); - AssertReplyContains("Element.update(\"aa\",\"new content\");"); - } - - [Test] - public void ReplaceHtmlUsingPartial() - { - DoGet("jsgeneration/replacehtmlwithpartial.rails"); - AssertSuccess(); - AssertReplyContains("Element.update(\"aa\",\"You\'re hammett
[ a ][ b ]\")"); - } - - [Test] - public void Replace() - { - DoGet("jsgeneration/replace.rails"); - AssertSuccess(); - AssertReplyContains("Element.replace(\"aa\",\"new content\")"); - } - - [Test] - public void InsertHtml() - { - DoGet("jsgeneration/InsertHtml.rails"); - AssertSuccess(); - AssertReplyContains("new Insertion.Top(\"aa\",\"new content\");"); - AssertReplyContains("new Insertion.Bottom(\"aa\",\"new content\");"); - AssertReplyContains("new Insertion.After(\"aa\",\"new content\");"); - AssertReplyContains("new Insertion.Before(\"aa\",\"new content\");"); - } - - [Test] - public void VisualEffect() - { - DoGet("jsgeneration/visualeffect.rails"); - AssertSuccess(); - AssertReplyContains("Effect.Highlight('element1', {});"); - AssertReplyContains("Effect.Highlight('element1', {duration:4});"); - } - - [Test] - public void ShowHideToggleRemove() - { - DoGet("jsgeneration/multipleactions.rails"); - AssertSuccess(); - AssertReplyContains("Element.show(\"a\");"); - AssertReplyContains("Element.show(\"a\",\"b\",\"c\");"); - AssertReplyContains("Element.hide(\"a\");"); - AssertReplyContains("Element.hide(\"a\",\"b\",\"c\");"); - AssertReplyContains("Element.toggle(\"a\");"); - AssertReplyContains("Element.toggle(\"a\",\"b\",\"c\");"); - AssertReplyContains("[\"a\",\"b\",\"c\"].each(Element.remove);"); - } - - #endregion - - #region Element related - - [Test] - public void SimpleElementAccess() - { - DoGet("jsgeneration/elementaccess.rails"); - AssertSuccess(); - AssertReplyContains("$('aa');"); - } - - [Test] - public void AccessingElementAttribute() - { - DoGet("jsgeneration/elementattribute.rails"); - AssertSuccess(); - AssertReplyContains("$('aa').className = \"newclass\";"); - } - - [Test] - public void AccessingElementAttributeDepth() - { - DoGet("jsgeneration/elementattributedepth.rails"); - AssertSuccess(); - AssertReplyContains("$('aa').style.display = \"none\";"); - } - - [Test] - public void AccessingElementMethod() - { - DoGet("jsgeneration/elementmethod.rails"); - AssertSuccess(); - AssertReplyContains("$('aa').hide();"); - } - - [Test] - public void AccessingElementMethodDepth() - { - DoGet("jsgeneration/elementmethoddepth.rails"); - AssertSuccess(); - AssertReplyContains("$('aa').read().test();"); - } - - [Test] - public void AccessingElementStockOperationReplaceHtml() - { - DoGet("jsgeneration/elementreplacehtml.rails"); - AssertSuccess(); - AssertReplyContains("$('aa').update(\"new content\")"); - } - - [Test] - public void AccessingElementStockOperationReplace() - { - DoGet("jsgeneration/elementreplace.rails"); - AssertSuccess(); - AssertReplyContains("$('aa').replace(\"new content\")"); - } - - #endregion - - #region Select related - - [Test] - public void SimpleCollectionAccess() - { - DoGet("jsgeneration/collectionaccess.rails"); - AssertSuccess(); - AssertReplyContains("$$('aa');"); - } - - [Test] - public void CollectionFirstLast() - { - DoGet("jsgeneration/collectionfirstlast.rails"); - AssertSuccess(); - AssertReplyContains("$$('p.welcome b').first().hide();"); - AssertReplyContains("$$('p.welcome b').last().show();"); - } - - #endregion - } -} +// Copyright 2004-2007 Castle Project - http://www.castleproject.org/ +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace Castle.MonoRail.Views.Brail.Tests +{ + using Castle.MonoRail.Framework.Tests; + using NUnit.Framework; + + [TestFixture] + public class JSGenerationTestCase : AbstractTestCase + { + #region Stock operations + + [Test] + public void ReplaceHtml() + { + DoGet("jsgeneration/replacehtml.rails"); + AssertSuccess(); + AssertReplyContains("Element.update(\"aa\",\"new content\");"); + } + + [Test] + public void ReplaceHtmlUsingPartial() + { + DoGet("jsgeneration/replacehtmlwithpartial.rails"); + AssertSuccess(); + AssertReplyContains("Element.update(\"aa\",\"You\'re hammett
[ a ][ b ]\")"); + } + + [Test] + public void Replace() + { + DoGet("jsgeneration/replace.rails"); + AssertSuccess(); + AssertReplyContains("Element.replace(\"aa\",\"new content\")"); + } + + [Test] + public void InsertHtml() + { + DoGet("jsgeneration/InsertHtml.rails"); + AssertSuccess(); + AssertReplyContains("new Insertion.Top(\"aa\",\"new content\");"); + AssertReplyContains("new Insertion.Bottom(\"aa\",\"new content\");"); + AssertReplyContains("new Insertion.After(\"aa\",\"new content\");"); + AssertReplyContains("new Insertion.Before(\"aa\",\"new content\");"); + } + + [Test] + public void VisualEffect() + { + DoGet("jsgeneration/visualeffect.rails"); + AssertSuccess(); + AssertReplyContains("Effect.Highlight('element1', {});"); + AssertReplyContains("Effect.Highlight('element1', {duration:4});"); + } + + [Test] + public void ShowHideToggleRemove() + { + DoGet("jsgeneration/multipleactions.rails"); + AssertSuccess(); + AssertReplyContains("Element.show(\"a\");"); + AssertReplyContains("Element.show(\"a\",\"b\",\"c\");"); + AssertReplyContains("Element.hide(\"a\");"); + AssertReplyContains("Element.hide(\"a\",\"b\",\"c\");"); + AssertReplyContains("Element.toggle(\"a\");"); + AssertReplyContains("Element.toggle(\"a\",\"b\",\"c\");"); + AssertReplyContains("[\"a\",\"b\",\"c\"].each(Element.remove);"); + } + + [Test] + public void MR_264() + { + DoGet("jsgeneration/mr264.rails"); + AssertReplyContains( + "Element.update(\"holder\",\"test\");\r\n"+ + "new Effect.Highlight('holder', {});"); + } + + #endregion + + #region Element related + + [Test] + public void SimpleElementAccess() + { + DoGet("jsgeneration/elementaccess.rails"); + AssertSuccess(); + AssertReplyContains("$('aa');"); + } + + [Test] + public void AccessingElementAttribute() + { + DoGet("jsgeneration/elementattribute.rails"); + AssertSuccess(); + AssertReplyContains("$('aa').className = \"newclass\";"); + } + + [Test] + public void AccessingElementAttributeDepth() + { + DoGet("jsgeneration/elementattributedepth.rails"); + AssertSuccess(); + AssertReplyContains("$('aa').style.display = \"none\";"); + } + + [Test] + public void AccessingElementMethod() + { + DoGet("jsgeneration/elementmethod.rails"); + AssertSuccess(); + AssertReplyContains("$('aa').hide();"); + } + + [Test] + public void AccessingElementMethodDepth() + { + DoGet("jsgeneration/elementmethoddepth.rails"); + AssertSuccess(); + AssertReplyContains("$('aa').read().test();"); + } + + [Test] + public void AccessingElementStockOperationReplaceHtml() + { + DoGet("jsgeneration/elementreplacehtml.rails"); + AssertSuccess(); + AssertReplyContains("$('aa').update(\"new content\")"); + } + + [Test] + public void AccessingElementStockOperationReplace() + { + DoGet("jsgeneration/elementreplace.rails"); + AssertSuccess(); + AssertReplyContains("$('aa').replace(\"new content\")"); + } + + #endregion + + #region Select related + + [Test] + public void SimpleCollectionAccess() + { + DoGet("jsgeneration/collectionaccess.rails"); + AssertSuccess(); + AssertReplyContains("$$('aa');"); + } + + [Test] + public void CollectionFirstLast() + { + DoGet("jsgeneration/collectionfirstlast.rails"); + AssertSuccess(); + AssertReplyContains("$$('p.welcome b').first().hide();"); + AssertReplyContains("$$('p.welcome b').last().show();"); + } + + #endregion + } +} diff --git a/MonoRail/TestSiteBrail/Controllers/JSGenerationController.cs b/MonoRail/TestSiteBrail/Controllers/JSGenerationController.cs index 706c3a9dc..3f5278fdd 100644 --- a/MonoRail/TestSiteBrail/Controllers/JSGenerationController.cs +++ b/MonoRail/TestSiteBrail/Controllers/JSGenerationController.cs @@ -32,5 +32,10 @@ namespace TestSiteBrail.Controllers RenderView(Action); } + + public void MR264() + { + + } } } diff --git a/MonoRail/TestSiteBrail/TestSiteBrail.csproj b/MonoRail/TestSiteBrail/TestSiteBrail.csproj index aa7c7ca8a..9de004ede 100644 --- a/MonoRail/TestSiteBrail/TestSiteBrail.csproj +++ b/MonoRail/TestSiteBrail/TestSiteBrail.csproj @@ -154,6 +154,8 @@ + + diff --git a/MonoRail/TestSiteBrail/Views/jsgeneration/mr264.brailjs b/MonoRail/TestSiteBrail/Views/jsgeneration/mr264.brailjs new file mode 100644 index 000000000..b11878d14 --- /dev/null +++ b/MonoRail/TestSiteBrail/Views/jsgeneration/mr264.brailjs @@ -0,0 +1,2 @@ +page.ReplaceHtml( @holder, { @partial: 'jsgeneration/mr264_partial' } ) +page.VisualEffect( @Highlight, @holder ) \ No newline at end of file diff --git a/MonoRail/TestSiteBrail/Views/jsgeneration/mr264_partial.brail b/MonoRail/TestSiteBrail/Views/jsgeneration/mr264_partial.brail new file mode 100644 index 000000000..30d74d258 --- /dev/null +++ b/MonoRail/TestSiteBrail/Views/jsgeneration/mr264_partial.brail @@ -0,0 +1 @@ +test \ No newline at end of file -- 2.11.4.GIT