MimeMapperTests.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // ReSharper disable InconsistentNaming
  2. using Masuit.Tools.Mime;
  3. using Xunit;
  4. namespace Masuit.Tools.UnitTest.Mvc
  5. {
  6. public class MimeMapperTests
  7. {
  8. private IMimeMapper _mapper;
  9. public MimeMapperTests()
  10. {
  11. _mapper = new MimeMapper();
  12. }
  13. [Fact]
  14. public void GetDefaultExtension()
  15. {
  16. Assert.Equal("text/plain", _mapper.GetMimeFromExtension("txt"));
  17. }
  18. [Fact]
  19. public void Search_Works_For_Extensions_With_Dot_As_Well()
  20. {
  21. Assert.NotNull(_mapper.GetMimeFromExtension("css"));
  22. Assert.Equal(_mapper.GetMimeFromExtension("css"), _mapper.GetMimeFromExtension(".css"));
  23. }
  24. [Fact]
  25. public void It_Returns_Default_Mime_For_Null_In_Extension()
  26. {
  27. Assert.Equal("application/octet-stream", _mapper.GetMimeFromExtension(null));
  28. }
  29. [Fact]
  30. public void It_Returns_Default_Mime_For_Not_Found_Extension()
  31. {
  32. Assert.Equal("application/octet-stream", _mapper.GetMimeFromExtension("not found"));
  33. }
  34. [Fact]
  35. public void It_Searches_In_Full_Path()
  36. {
  37. Assert.Equal("image/gif", _mapper.GetMimeFromPath("C:\\folder1\\folder2\\text.gif"));
  38. }
  39. [Fact]
  40. public void It_Searches_In_Relative_Path()
  41. {
  42. Assert.Equal("image/gif", _mapper.GetMimeFromPath("..\\..\\..\\text.gif"));
  43. }
  44. [Fact]
  45. public void Extension_Overrides_Default_Mime()
  46. {
  47. _mapper = new MimeMapper(new MimeMappingItem
  48. {
  49. Extension = "txt",
  50. MimeType = "my own mime type"
  51. });
  52. Assert.Equal("my own mime type", _mapper.GetMimeFromPath(".txt"));
  53. Assert.Equal("my own mime type", _mapper.GetMimeFromPath("..\\..\\..\\text.txt"));
  54. }
  55. [Fact]
  56. public void Search_Works_For_Files_With_Dots_In_Name()
  57. {
  58. Assert.Equal("text/javascript", _mapper.GetMimeFromPath("jquery.min.js"));
  59. Assert.Equal("text/javascript", _mapper.GetMimeFromPath("http://example.com/jquery.min.js"));
  60. }
  61. [Fact]
  62. public void It_Returns_Default_Mime_For_Files_Without_Extension()
  63. {
  64. Assert.Equal("application/octet-stream", _mapper.GetMimeFromPath("testfile"));
  65. Assert.Equal("application/octet-stream", _mapper.GetMimeFromPath("\\\\network\\share\\testfile"));
  66. }
  67. }
  68. }