예제 #1
0
 public void GivenAFile_TheCorrectContentTypeIsReturned()
 {
     var model = new NewMediaViewModel();
     var file = new TestableHttpPostedFileBase();
     model.File = file;
     model.ContentType.Should().Be("test/foo");
 }
예제 #2
0
        public void GivenAFile_WhenItHasAnExtension_ThenTheExtensionIsRetrieved()
        {
            var    model     = new NewMediaViewModel();
            string extension = model.GetExtension("some.file.name.txt");

            Assert.That(extension, Is.EqualTo("txt"));
        }
예제 #3
0
 public void WhenTheModelHasAnInvalidQqFile_ThenNoMessageIsOutput()
 {
     var model = new NewMediaViewModel();
     model.QqFile = "test.bar";
     var context = new ValidationContext(new object());
     var results = model.Validate(context);
     results.Count().Should().Be(1);
 }
예제 #4
0
        public void GivenAValidQqFileExtension_ThenTheModelIsValid()
        {
            var model = new NewMediaViewModel {
                QqFile = "name.jpg"
            };

            Assert.That(model.Validate(null).Count(), Is.EqualTo(0));
        }
예제 #5
0
        public void GivenAValidFileExtension_ThenTheModelIsValid()
        {
            var model = new NewMediaViewModel {
                File = new TestHttpPostedFileBase("foo.jpg")
            };

            Assert.That(model.Validate(null).Count(), Is.EqualTo(0));
        }
예제 #6
0
        public void GivenAQQFile_ThenTheCorrectMimeTypeIsReturned()
        {
            var model = new NewMediaViewModel {
                QqFile = "name.jpg"
            };

            Assert.That(model.ContentType, Is.EqualTo("image/jpeg"));
        }
예제 #7
0
 public void WhenTheModelIsValid_ThenNoMessageIsOutput()
 {
     var model = new NewMediaViewModel();
     var file = new TestableHttpPostedFileBase();
     model.File = file;
     var context = new ValidationContext(new object());
     var results = model.Validate(context);
     results.Count().Should().Be(0);
 }
예제 #8
0
        public virtual ActionResult New(string nickname)
        {
            NewMediaViewModel model = new NewMediaViewModel {
                Nickname = nickname
            };

            return(View(new EditPostViewModel {
                IsCreate = true, Nickname = nickname, NewMediaViewModel = model
            }));
        }
예제 #9
0
        public virtual JsonResult Create(NewMediaViewModel model)
        {
            var result = new MediaCreateJsonResponse {
                success = false
            };

            try
            {
                var    user = (UserViewModel)HttpContext.User;
                int    contentLength;
                Stream inputStream;
                string fileName;
                if (model.File != null)
                {
                    contentLength = model.File.ContentLength;
                    inputStream   = model.File.InputStream;
                    fileName      = model.File.FileName;
                }
                else
                {
                    contentLength = HttpContext.Request.ContentLength;
                    inputStream   = HttpContext.Request.InputStream;
                    fileName      = model.QqFile;
                }

                if (contentLength != 0)
                {
                    var media   = new Media();
                    var success = true;
                    var message = "Media uploaded successfully";
                    try
                    {
                        media = _mediaService.WriteMedia(fileName, user.Id, model.ContentType, inputStream, contentLength);
                    }
                    catch (MBlogInsertItemException e)
                    {
                        success = false;
                        message = e.Message;
                    }
                    string anchor = string.Format("<a href='{0}'><img src='{0}'/></a>",
                                                  Url.Action("show", "media", new { year = media.Year, month = media.Month, day = media.Day, linkKey = media.LinkKey }));
                    result = new MediaCreateJsonResponse {
                        success = success, url = media.Url, message = message, title = media.Title, action = Url.Action("update", "media", new { id = media.Id }), imageAnchor = anchor
                    };
                }
            }
            catch (Exception e)
            {
                result.exception = e;
                result.message   = e.Message;
            }
            return(Json(result));
        }
예제 #10
0
 public void GivenAQqFile_TheCorrectContentTypeIsReturned()
 {
     var model = new NewMediaViewModel();
     model.QqFile = "foo.jpg";
     model.ContentType.Should().Be("image/jpeg");
 }
예제 #11
0
 public void GivenAQqFile_AndAnNoExtension_TheAnExceptionIsThrown()
 {
     var model = new NewMediaViewModel();
     model.QqFile = "foo";
     model.ContentType.Should().BeEmpty();
 }
예제 #12
0
 public virtual ActionResult New(NewMediaViewModel model)
 {
     return(View(new NewMediaViewModel {
         Nickname = model.Nickname, File = model.File
     }));
 }
예제 #13
0
        public void GivenAValidFIleExtension_ThenIsAllowedIsTrue()
        {
            var model = new NewMediaViewModel();

            Assert.IsTrue(model.IsAllowed("jpg"));
        }
예제 #14
0
        public void GivenAInvalidFIleExtension_ThenIsAllowedIsFalse()
        {
            var model = new NewMediaViewModel();

            Assert.IsFalse(model.IsAllowed("txt"));
        }