private void AssertTabStrip(XmlNode container, TabbedMultiViewRenderer renderer)
        {
            var divTabStrip = container.GetAssertedChildElement("tabStrip", 1);

            divTabStrip.AssertChildElementCount(0);

            divTabStrip.AssertAttributeValueEquals("class", renderer.CssClassTabStrip);
        }
        public void RenderDiagnosticMetadataAttributes()
        {
            PopulateControl();

            _renderer = new TabbedMultiViewRenderer(new FakeResourceUrlFactory(), GlobalizationService, RenderingFeatures.WithDiagnosticMetadata);

            var div = AssertControl(false, false, false, false);

            div.AssertAttributeValueEquals(DiagnosticMetadataAttributes.ControlType, "TabbedMultiView");
        }
        public void SetUp()
        {
            _htmlHelper  = new HtmlHelper();
            _httpContext = MockRepository.GenerateStub <HttpContextBase> ();

            _control = MockRepository.GenerateStub <ITabbedMultiView>();
            _control.Stub(stub => stub.ClientID).Return("MyTabbedMultiView");
            _control.Stub(stub => stub.ControlType).Return("TabbedMultiView");
            _control.Stub(stub => stub.TopControl).Return(new PlaceHolder {
                ID = "MyTabbedMultiView_TopControl"
            });
            _control.Stub(stub => stub.BottomControl).Return(new PlaceHolder {
                ID = "MyTabbedMultiView_BottomControl"
            });

            var tabStrip = MockRepository.GenerateStub <IWebTabStrip>();

            tabStrip.Stub(stub => stub.RenderControl(_htmlHelper.Writer)).WhenCalled(
                delegate(MethodInvocation obj)
            {
                HtmlTextWriter writer = (HtmlTextWriter)obj.Arguments[0];
                writer.AddAttribute(HtmlTextWriterAttribute.Class, tabStrip.CssClass);
                writer.RenderBeginTag("tabStrip");
                writer.RenderEndTag();
            });

            _control.Stub(stub => stub.TabStrip).Return(tabStrip);

            _control.Stub(stub => stub.ActiveViewClientID).Return(_control.ClientID + "_ActiveView");
            _control.Stub(stub => stub.ActiveViewContentClientID).Return(_control.ActiveViewClientID + "_Content");
            _control.Stub(stub => stub.WrapperClientID).Return("WrapperClientID");


            StateBag stateBag = new StateBag();

            _control.Stub(stub => stub.Attributes).Return(new AttributeCollection(stateBag));
            _control.Stub(stub => stub.TopControlsStyle).Return(new Style(stateBag));
            _control.Stub(stub => stub.BottomControlsStyle).Return(new Style(stateBag));
            _control.Stub(stub => stub.ActiveViewStyle).Return(new WebTabStyle());
            _control.Stub(stub => stub.ControlStyle).Return(new Style(stateBag));

            var clientScriptStub = MockRepository.GenerateStub <IClientScriptManager> ();

            var pageStub = MockRepository.GenerateStub <IPage> ();

            pageStub.Stub(stub => stub.ClientScript).Return(clientScriptStub);

            _control.Stub(stub => stub.Page).Return(pageStub);

            _renderer = new TabbedMultiViewRenderer(new FakeResourceUrlFactory(), GlobalizationService, RenderingFeatures.Default);
        }
        private void AssertTopControls(XmlNode container, bool withCssClass, bool isEmpty, TabbedMultiViewRenderer renderer)
        {
            string cssClass = renderer.CssClassTopControls;

            if (withCssClass)
            {
                cssClass = c_cssClass;
            }

            var divTopControls = container.GetAssertedChildElement("div", 0);

            divTopControls.AssertAttributeValueEquals("id", _control.TopControl.ClientID);
            divTopControls.AssertAttributeValueContains("class", cssClass);
            if (isEmpty)
            {
                divTopControls.AssertAttributeValueContains("class", renderer.CssClassEmpty);
            }

            divTopControls.AssertChildElementCount(1);

            var divContent = divTopControls.GetAssertedChildElement("div", 0);

            divContent.AssertAttributeValueEquals("class", renderer.CssClassContent);

            if (!isEmpty)
            {
                divContent.AssertTextNode("TopControls", 0);
            }
        }
        private void AssertView(XmlNode container, bool withCssClass, bool isDesignMode, TabbedMultiViewRenderer renderer)
        {
            string cssClassActiveView = renderer.CssClassActiveView;

            if (withCssClass)
            {
                cssClassActiveView = c_cssClass;
            }

            var divActiveView = container.GetAssertedChildElement("div", 2);

            divActiveView.AssertAttributeValueEquals("id", _control.ActiveViewClientID);
            divActiveView.AssertAttributeValueEquals("class", cssClassActiveView);
            if (isDesignMode)
            {
                divActiveView.AssertStyleAttribute("border", "solid 1px black");
            }
            divActiveView.AssertChildElementCount(1);

            var divContentBorder = divActiveView.GetAssertedChildElement("div", 0);

            divContentBorder.AssertAttributeValueEquals("class", renderer.CssClassContentBorder);

            var divContent = divContentBorder.GetAssertedChildElement("div", 0);

            divContent.AssertAttributeValueEquals("class", renderer.CssClassContent);
        }
        private XmlNode GetAssertedElement(bool withCssClass, bool inAttributes, bool isDesignMode, TabbedMultiViewRenderer renderer)
        {
            string cssClass = renderer.CssClassBase;

            if (withCssClass)
            {
                cssClass = inAttributes ? _control.Attributes["class"] : _control.CssClass;
            }

            var document = _htmlHelper.GetResultDocument();
            var outerDiv = document.GetAssertedChildElement("div", 0);

            outerDiv.AssertAttributeValueEquals("class", cssClass);
            if (isDesignMode)
            {
                outerDiv.AssertStyleAttribute("width", "100%");
                outerDiv.AssertStyleAttribute("height", "75%");
            }
            outerDiv.AssertChildElementCount(1);

            return(outerDiv);
        }