public void TestGenericTypes(BasicMimeType inMimeType, string inMimeTypeStr)
        {
            True(inMimeType != BasicMimeType.none);
            True(inMimeType.IsGenericType());
            True(inMimeTypeStr.NotNulle());
            True(inMimeTypeStr.EndsWith("/none"));

            BasicMimeType mtypeFromStr = BasicMimeTypesX.ParseMimeType(inMimeTypeStr);

            // none; see next line. Tests that MUST have `allowGenericMatchOnNotFound: true`,
            // and that default is the reverse
            True(mtypeFromStr == BasicMimeType.none);

            mtypeFromStr = BasicMimeTypesX.ParseMimeType(inMimeTypeStr, allowGenericMatchOnNotFound: true);
            True(inMimeType == mtypeFromStr);
        }
        public void TestBunchOfFullValidTypes(
            BasicMimeType inMimeType, string inMimeTypeStr, string inExt)
        {
            // ASSERT: NOT testing None || Generic types || null mstring || extensions
            True(inMimeTypeStr.NotNulle());
            True(inExt.NotNulle());
            False(inMimeType.IsGenericTypeOrNone());

            BasicMimeType mtypeFromStr = BasicMimeTypesX.ParseMimeType(inMimeTypeStr);

            True(mtypeFromStr == inMimeType);

            BasicMimeType extMtype = BasicMimeTypesX.GetMimeTypeFromFileExtension(inExt);

            True(mtypeFromStr == extMtype);

            string gottenMTypeStrFromInEnum = inMimeType.MimeTypeString();

            True(inMimeTypeStr == gottenMTypeStrFromInEnum);
        }
Esempio n. 3
0
        /// <summary></summary>
        /// <param name="mimeType"></param>
        /// <param name="extension"></param>
        /// <param name="uri">Input uri to extend some possible detections, currently
        /// only used when <paramref name="detectYtubeVimeoTypes"/>.</param>
        /// <param name="detectYtubeVimeoTypes">True to detect a mime-type for youtube / vimeo.</param>
        public static BasicMimeType GetMimeTypeFromTypeOrExtension(
            string mimeType,
            string extension,
            Uri uri = null,
            bool detectYtubeVimeoTypes = false)
        {
            mimeType = mimeType.NullIfEmptyTrimmed();
            BasicMimeType mime = BasicMimeType.none;

            if (mimeType != null)
            {
                mime = BasicMimeTypesX.ParseMimeType(mimeType, allowGenericMatchOnNotFound: true);
            }

            if (extension.NotNulle() && mime.IsGenericTypeOrNone())              //.HasNoSubtypeOrNone()) {
            {
                BasicMimeType _extMime = BasicMimeType.none.GetMimeTypeFromFileExtension(extension);
                mime = mime.GetMostQualifiedMimeType(_extMime);
            }

            if (detectYtubeVimeoTypes && uri != null)
            {
                if (mime == BasicMimeType.none || (extension.IsNulle() && mimeType == null))                  // hmmm, i guess let this override if these conditions met
                {
                    string linkHost = uri.Host;
                    if (linkHost.CountN() > 5)
                    {
                        if (linkHost.Contains("vimeo"))
                        {
                            mime = BasicMimeType.video_vimeo;
                        }
                        else if (linkHost.Contains("youtu"))
                        {
                            mime = BasicMimeType.video_youtube;
                        }
                    }
                }
            }

            return(mime);
        }
        public void Test_InvalidOrMissing_Extensions(string ext)
        {
            BasicMimeType extMtype = BasicMimeTypesX.GetMimeTypeFromFileExtension(ext);

            True(extMtype == BasicMimeType.none);
        }