(() => helper.TextAreaControlGroupFor(m => m.Foo, -1, 0, null /* htmlAttributes */));
369 | }
370 |
371 | [Test]
372 | public void TextAreaControlGroupForParameterDictionaryMerging()
373 | {
374 | // Arrange
375 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
376 |
377 | // Act
378 | var html = helper.TextAreaControlGroupFor(m => m.Foo, new { rows = "30" });
379 |
380 | // Assert
381 | var sb = new StringBuilder();
382 | sb.AppendLine(@"");
384 |
385 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
386 | }
387 |
388 | [Test, Ignore("Cannot get ClientValidationRuleFactory to work")]
389 | public void TextAreaControlGroupForParameterDictionaryMerging_Unobtrusive()
390 | {
391 | // Arrange
392 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
393 | helper.ViewContext.ClientValidationEnabled = true;
394 | helper.ViewContext.UnobtrusiveJavaScriptEnabled = true;
395 | helper.ViewContext.FormContext = new FormContext();
396 | ModelMetadata modelMetadata;
397 | //helper.ClientValidationRuleFactory = (name, metadata) =>
398 | {
399 | //modelMetadata = metadata;
400 | //return new[] { new ModelClientValidationRule { ValidationType = "type", ErrorMessage = "error" } };
401 | };
402 |
403 | // Act
404 | var html = helper.TextAreaControlGroupFor(m => m.Foo, new { rows = "30" });
405 |
406 | // Assert
407 | //Assert.NotNull(modelMetadata);
408 | //Assert.AreEqual("Foo", modelMetadata.PropertyName);
409 | Assert.AreEqual(@"", html.ToHtmlString());
411 | }
412 |
413 | [Test]
414 | public void TextAreaControlGroupForWithDefaultAttributes()
415 | {
416 | // Arrange
417 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
418 |
419 | // Act
420 | var html = helper.TextAreaControlGroupFor(m => m.Foo);
421 |
422 | // Assert
423 | var sb = new StringBuilder();
424 | sb.AppendLine(@"");
426 |
427 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
428 | }
429 |
430 | [Test]
431 | public void TextAreaControlGroupForWithZeroRowsAndColumns()
432 | {
433 | // Arrange
434 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
435 |
436 | // Act
437 | var html = helper.TextAreaControlGroupFor(m => m.Foo, 0, 0, null);
438 |
439 | // Assert
440 | var sb = new StringBuilder();
441 | sb.AppendLine(@"");
443 |
444 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
445 | }
446 |
447 | [Test]
448 | public void TextAreaControlGroupForWithObjectAttributes()
449 | {
450 | // Arrange
451 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
452 |
453 | // Act
454 | var html = helper.TextAreaControlGroupFor(m => m.Foo, TextAreaAttributesObjectDictionary);
455 |
456 | // Assert
457 | var sb = new StringBuilder();
458 | sb.AppendLine(@"");
460 |
461 |
462 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
463 | }
464 |
465 | [Test]
466 | public void TextAreaControlGroupForWithObjectAttributesWithUnderscores()
467 | {
468 | // Arrange
469 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
470 |
471 | // Act
472 | var html = helper.TextAreaControlGroupFor(m => m.Foo, TextAreaAttributesObjectUnderscoresDictionary);
473 |
474 | // Assert
475 | var sb = new StringBuilder();
476 | sb.AppendLine(@"");
478 |
479 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
480 | }
481 |
482 | [Test]
483 | public void TextAreaControlGroupForWithDictionaryAttributes()
484 | {
485 | // Arrange
486 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
487 |
488 | // Act
489 | var html = helper.TextAreaControlGroupFor(m => m.Foo, TextAreaAttributesDictionary);
490 |
491 | // Assert
492 | var sb = new StringBuilder();
493 | sb.AppendLine(@"");
495 |
496 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
497 | }
498 |
499 | [Test]
500 | public void TextAreaControlGroupForWithViewDataErrors()
501 | {
502 | // Arrange
503 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewDataWithErrors());
504 |
505 | // Act
506 | var html = helper.TextAreaControlGroupFor(m => m.Foo, TextAreaAttributesObjectDictionary);
507 |
508 | // Assert
509 | var sb = new StringBuilder();
510 | sb.AppendLine(@"");
512 |
513 |
514 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
515 | }
516 |
517 | [Test]
518 | public void TextAreaControlGroupForWithViewDataErrorsAndCustomClass()
519 | {
520 | // Arrange
521 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewDataWithErrors());
522 |
523 | // Act
524 | var html = helper.TextAreaControlGroupFor(m => m.Foo, new { @class = "foo-class" });
525 |
526 | // Assert
527 | var sb = new StringBuilder();
528 | sb.AppendLine(@"");
530 |
531 |
532 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
533 | }
534 |
535 | [Test]
536 | public void TextAreaControlGroupForWithPrefix()
537 | {
538 | // Arrange
539 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
540 | helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";
541 |
542 | // Act
543 | var html = helper.TextAreaControlGroupFor(m => m.Foo);
544 |
545 | // Assert
546 | var sb = new StringBuilder();
547 | sb.AppendLine(@"");
549 |
550 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
551 | }
552 |
553 | [Test]
554 | public void TextAreaControlGroupForWithPrefixAndEmptyName()
555 | {
556 | // Arrange
557 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
558 | helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";
559 |
560 | // Act
561 | var html = helper.TextAreaControlGroupFor(m => m);
562 |
563 | // Assert
564 | var sb = new StringBuilder();
565 | sb.AppendLine(@"");
567 |
568 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
569 | }
570 |
571 | [Test]
572 | public void TextAreaControlGroupForParameterDictionaryMergingWithObjectValues()
573 | {
574 | // Arrange
575 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
576 |
577 | // Act
578 | var html = helper.TextAreaControlGroupFor(m => m.Foo, 10, 25, new { rows = "30" });
579 |
580 | // Assert
581 | var sb = new StringBuilder();
582 | sb.AppendLine(@"");
584 |
585 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
586 | }
587 |
588 | [Test]
589 | public void TextAreaControlGroupForParameterDictionaryMergingWithObjectValuesWithUnderscores()
590 | {
591 | // Arrange
592 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
593 |
594 | // Act
595 | var html = helper.TextAreaControlGroupFor(m => m.Foo, 10, 25, new { rows = "30", foo_bar = "baz" });
596 |
597 | // Assert
598 | var sb = new StringBuilder();
599 | sb.AppendLine(@"");
601 |
602 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
603 | }
604 |
605 | [Test]
606 | public void TextAreaControlGroupForParameterDictionaryMergingWithDictionaryValues()
607 | {
608 | // Arrange
609 | var helper = MvcHelper.GetHtmlHelper(GetTextAreaViewData());
610 |
611 | // Act
612 | var html = helper.TextAreaControlGroupFor(m => m.Foo, 10, 25, new RouteValueDictionary(new { rows = "30" }));
613 |
614 | // Assert
615 | var sb = new StringBuilder();
616 | sb.AppendLine(@"");
618 |
619 | Assert.AreEqual(sb.ToString(), html.ToHtmlString());
620 | }
621 |
622 | [Test]
623 | public void DropDownListControlGroupForWithNullExpressionThrows()
624 | {
625 | // Arrange
626 | var helper = MvcHelper.GetHtmlHelper(new ViewDataDictionary