use crate::trie::Trie;
use std::sync::LazyLock;
pub static URL_IGNORE_TRIE: LazyLock<Trie> = LazyLock::new(|| {
let mut trie = Trie::new();
let patterns = [
"https://www.googletagservices.com/tag/",
"https://js.hs-analytics.net/analytics/",
"https://js.usemessages.com/conversations-embed.js",
"https://www.googletagmanager.com/",
"https://googletagmanager.com/",
"https://cm.g.doubleclick.net/",
"https://www.googleoptimize.com/optimize.js?id=GTM",
"https://ads.pubmatic.com/AdServer/",
"https://js.hsadspixel.net",
"https://www.google.com/adsense/",
"https://www.googleadservices.com",
"https://static.cloudflareinsights.com/",
"https://cdn.curalate.com/sites/",
"https://adservice.google.com",
"https://www.gstatic.com/cv/js/sender/",
"https://googleads.g.doubleclick.net",
"https://www.google-analytics.com",
"https://www.googleanalytics.com",
"https://cdn-cookieyes.com/client_data/",
"https://iabusprivacy.pmc.com/geo-info.js",
"https://support.webtasy.com/scripts/track_visit.php",
"https://cookie-cdn.cookiepro.com/consent",
"https://a.omappapi.com/app/js/api.min.js",
"https://static.hotjar.com/",
"https://cdn.eu.amplitude.com/script/",
"https://js.hscta.net/cta/current.js",
"https://cdn.refersion.com/refersion.js",
"https://web.cmp.usercentrics.eu/ui/loader.js",
"https://pixeltrack.clientgear.com",
"https://events.framer.com/script?v=2",
"https://load.sumome.com/",
"https://websdk.appsflyer.com/",
"https://cdn.mediago.io/js/pixel.js",
"https://s.pinimg.com/ct/core.js",
"https://www.mongoosemetrics.com/",
"https://geolocation-recommendations.shopifyapps.com/",
"https://consent.cookiebot.com/uc.js",
"https://w.usabilla.com/",
"https://consentcdn.cookiebot.com/",
"https://plausible.io/api/event",
"https://sentry.io/api/",
"https://cdn.onesignal.com/",
"https://cdn.cookielaw.org/",
"https://static.doubleclick.net",
"https://tools.luckyorange.com/",
"https://cdn.piano.io",
"https://px.ads.linkedin.com",
"https://cdn.sift.com/s.js",
"https://connect.facebook.net",
"https://tags.tiqcdn.com",
"https://tr.snapchat.com",
"https://ads.twitter.com",
"https://cdn.segment.com",
"https://stats.wp.com",
"https://analytics.",
"http://analytics.",
"https://cdn.cxense.com",
"https://cdn.tinypass.com",
"https://cd.connatix.com",
"https://js.chargebee.com/v2/chargebee.js",
"https://consent.cookiebot.com/",
"https://platform-api.sharethis.com/js/sharethis.js",
"https://js.hsforms.net/forms/embed/v2.js",
"https://static.parastorage.com/services/wix-thunderbolt/dist/",
"https://static.parastorage.com/services/tag-manager-client/",
"https://cdn.consentmanager.net/",
"https://static.parastorage.com/services/form-app/",
"https://www.datadoghq-browser-agent.com/",
"https://b.delivery.consentmanager.net/delivery/",
"https://tvem.cdn.turner.com/v2/",
"https://image6.pubmatic.com/AdServer/",
"https://www.digistore24.com/track/AFFILIATE/",
"https://i.cdn.turner.com/ads/adfuel/",
"https://featureassets.org",
"https://cdn.rudderlabs.com",
"https://script.hotjar.com/",
"https://cdn.branch.io/branch-latest.min.js",
"https://cdn.brcdn.com/v1/",
"https://cdn.scarabresearch.com/js/",
"https://cdn.insurads.com/",
"https://cdn.segment.com/",
"https://analytics.tiktok.com/",
"https://cdn-ukwest.onetrust.com",
"https://cdn.onetrust.com",
"https://services.insurads.com/",
"https://platform.iteratehq.com/loader.js",
"https://cdn.complyauto.com/cookiebanner/banner.js",
"https://sdtagging.azureedge.net/scripts/sd.js?containerId=GMUS",
"https://ref.dealerinspire.com/",
"https://privacy.condenastdigital.com/",
"https://cas-assets.edmunds.com/partner-analytics/",
"https://s.amazon-adsystem.com/",
"https://ts.amazon-adsystem.com/",
"https://tracking.g2crowd.com/attribution_tracking/conversions/",
"https://wsmcdn.audioeye.com/aem.js",
"https://static.criteo.net/",
"https://dynamic.criteo.com/",
"https://tags.creativecdn.com/",
"https://static.ads-twitter.com/uwt.js",
"https://amplify.outbrain.com/cp/obtp.js",
"https://js.hsadspixel.net/fb.js",
"https://js.hs-banner.com/v2/",
"https://www.dwin1.com/2134.js",
"https://browser.sentry-cdn.com/",
"https://www.dianomi.com/js/contextfeed.js",
"https://a.pub.network/",
"https://cdn.quantummetric.com/qscripts/",
"https://wix-engage-visitors-prod-13.firebaseio.com/",
"https://c.amazon-adsystem.com/aax2/apstag.js",
"https://servedbyadbutler.com/",
"https://www.clarity.ms/tag/",
"https://cdn.callrail.com/companies/",
"https://tru.am/scripts/custom/",
"https://js.zi-scripts.com/zi-tag.js",
"https://tag.getamigo.io/js/",
"https://s.go-mpulse.net/boomerang/",
"https://tag.aticdn.net/piano-analytics.js",
"https://cdn.trustcommander.net/privacy/",
"https://img1.wsimg.com/traffic-assets/js/tccl-tti.min.js",
"https://img1.wsimg.com/signals/js/clients/scc-c2/scc-c2.min.js",
"https://beacon.riskified.com/",
"https://connect.facebook.net/en_US/fbevents.js",
"https://cdn.shopify.com/shopifycloud/boomerang/shopify-boomerang-1.0.0.min.js",
"https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js",
"https://tag.marinsm.com/serve/",
"https://acdn.adnxs.com/ast/ast.js",
"https://log.medietall.no/analytics.v2.js",
"https://adsdk.microsoft.com/ast/ast.js",
"https://schibsted-cdn.relevant-digital.com/static/tags/",
"https://sdk.privacy-center.org/",
"https://bat.bing.net",
"https://tpc.googlesyndication.com/",
"https://cdn.petametrics.com/",
"https://cdn.doubleverify.com/",
"https://assets.poool.fr/engage.min.js",
"https://www.facebook.com/v17.0/plugins/like.php?",
"https://gum.criteo.com",
"https://js-sec.indexww.com",
"https://eus.rubiconproject.com/",
"https://eb2.3lift.com/",
"https://acdn.adnxs.com/",
"https://ssc-cms.33across.com/",
"https://static.addtoany.com/menu/",
"https://www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js",
"https://www.gstatic.com/eureka/clank/131/cast_sender.js",
"https://static.adsafeprotected.com/",
"https://ssum-sec.casalemedia.com/usermatch",
"https://cdn.brandmetrics.com/scripts/",
"https://cdn.confiant-integrations.net/",
"https://www.b2i.us/b2i/",
"https://acsbapp.com/apps/app/dist/js/app.js",
"https://cdn.doofinder.com/livelayer/",
"https://load.sumo.com/",
"https://cdn11.bigcommerce.com/",
"https://na.shgcdn3.com/collector.js",
"https://microapps.bigcommerce.com/bodl-events/index.js",
"https://checkout-sdk.bigcommerce.com/v1/loader.js",
"https://cdn.callrail.com/companies/",
"https://www.webtraxs.com/trxscript.php",
"https://diffuser-cdn.app-us1.com/diffuser/diffuser.js",
"https://imasdk.googleapis.com/js/sdkloader/ima3.js",
"https://cdn.registerdisney.go.com/v4/responder.js",
"https://cdn.registerdisney.go.com/v4/OneID.js",
"https://u5.investingchannel.com/static/uat.js",
"https://diffuser-cdn.app-us1.com/diffuser/diffuser.js",
"https://www.clarity.ms/tag/",
"https://js-agent.newrelic.com/",
"https://bat.bing.com/bat.js",
"https://scripts.webcontentassessor.com/",
"https://container.pepperjam.com/",
"https://p.cquotient.com/pebble?",
"https://p.yotpo.com/i?",
"https://cdn-gl.imrworldwide.com/",
"https://usage.trackjs.com/",
"https://shopify-init.blackcrow.ai/",
"https://js.adsrvr.org/up_loader.1.1.0.js",
"https://t.cfjump.com/tag/",
"https://tag.wknd.ai/",
"https://bpi.zip.co/trx/3.3.0.js",
"https://s1.hdslb.com/bfs/cm/cm-sdk/static/js/track-collect.js",
"https://consent.trustarc.com/",
"https://cdn-sitegainer.com/",
"https://yob9p0yb4y.kameleoon.eu/",
"https://j.6sc.co/6si.min.js",
"https://x.clearbitjs.com/v2/",
"https://api.clerk.io/v2/log/",
"https://cdn.noibu.com/",
"https://us1.discourse-cdn.com/cursor1/assets/plugins/discourse-adplugin",
"https://static.cloudflareinsights.com/beacon.min.js/",
"https://hm.baidu.com/",
"https://storage.googleapis.com/lr-marketing-js/lr-web-analytics/",
"https://unpkg.zhimg.com/@efe/zhad-tracker",
"https://tracking.g2crowd.com/attribution_tracking/",
"https://snap.licdn.com/",
"https://m.servedby-buysellads.com/monetization.it.js",
"https://cdn.metadata.io/site-insights.js",
"https://www.ist-track.com/",
"https://www.redditstatic.com/ads/",
"https://verifi.podscribe.com/",
"https://script.crazyegg.com/",
"https://cdn.iubenda.com/",
"https://bundle.5gtb.com/",
"https://d34r8q7sht0t9k.cloudfront.net/tag.js",
"https://pagead2.googlesyndication.com/",
"https://a.klaviyo.com/onsite/track-analytics",
"https://apps.bazaarvoice.com/analytics/bv-analytics.js",
"https://mab.chartbeat.com/mab_strategy/",
"https://c.amazon-adsystem.com/",
"https://rumcdn.geoedge.be/",
"https://assets.adobedtm.com/",
"https://macro.adnami.io/macro/spec/adsm.macro.",
"https://log.medietall.no/analytics.js",
"https://cl-eu2.k5a.io/",
"https://cdn.siftscience.com/s.js",
"https://cdn.segment.com/analytics.js",
"https://lwadm.com/lw/pbjs?",
"https://cl.k5a.io/",
"https://cdn-cookieyes.com/",
"https://s.kk-resources.com/leadtag.js",
"https://app.optibase.io/script.js",
"https://nexus.ensighten.com/",
"https://c.oracleinfinity.io/acs/account/fp3kyrmvtg/js/prod/odc.js",
"https://static-tracking.klaviyo.com/",
"https://cdn-widgetsrepository.yotpo.com/",
"https://a.klaviyo.com/onsite/track-analytics?",
"https://klaviyo.com/onsite/track-analytics?",
"https://s2.go-mpulse.net/",
"https://pbs.yahoo.com/",
"https://cdn.intergient.com/",
"https://img1.wsimg.com/",
"https://invitejs.trustpilot.com/tp.min.js",
"https://ads.pubmatic.com/AdServer/js/",
"https://dev.visualwebsiteoptimizer.com/",
"https://cdn.cxense.com/cx.cce.js",
"https://widgets.outbrain.com/nanoWidget/externals/obPixelFrame/obPixelFrame.js",
"https://widgets.outbrain.com/external/externals/intentiq.js",
"https://applets.ebxcdn.com/ebx.js",
"https://cdn.yektanet.com/superscript/",
"https://cdn.fuseplatform.net/publift/tags/",
"https://tag.rmp.rakuten.com/",
"https://analytics-api.",
"https://cdn.corvidae.ai/pixel.min.js",
"https://app.popt.in/pixel.js",
"https://js-agent.newrelic.com",
"https://js-eu1.hs-analytics.net/analytics/",
"https://js-eu1.hs-banner.com/v2/",
"https://static.doubleclick.net/instream/ad_status.js",
"ssl.cf1.rackcdn.com/stf.js",
"https://code.etracker.com/code/e.js",
"https://geo.privacymanager.io/",
"https://script.dotmetrics.net/",
"https://delivery.consentmanager.net/delivery/",
"https://mc.yandex.ru/metrika/tag.js",
"https://cdn.debugbear.com/",
"https://stats.wp.com/e-",
"https://public.servenobid.com/partner/",
"https://sb.scorecardresearch.com/",
"https://cdn.pdst.fm/ping.min.js",
"https://resources.infolinks.com/js/infolinks_main.js",
"https://www.clarity.ms/tag/shopify/",
"https://static.klaviyo.com/onsite/js/",
"https://a.klaviyo.com/media/js/",
"https://cdn.intelligems.io/esm/",
"https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js",
"https://client.aps.amazon-adsystem.com/publisher.js",
"https://s.go-mpulse.net/",
"https://static.chartbeat.com/js/chartbeat_video.js",
"https://static.chartbeat.com/js/chartbeat_mab.js",
"https://assets.trendii.com/pixel/main.js",
"https://micro.rubiconproject.com/prebid/",
"https://tag.wknd.ai/",
"https://try.abtasty.com/",
"https://tags.tiqcdn.com/utag/",
"https://assets.squarespace.com/universal/scripts-compressed/performance-",
"https://assets.squarespace.com/universal/scripts-compressed/async-gdpr-cookie-banner-",
"https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js",
"https://libs.coremetrics.com/eluminate.js",
"https://c.webtrends-optimize.com/acs/accounts/",
"https://cmp.inmobi.com/choice/",
"https://p11.techlab-cdn.com/",
"/scripts/matomo/",
"/js/exponea.min.js",
"/eBootsStorefrontAssetStore/javascript/Analytics.js",
"/eu_cookie_compliance/js/eu_cookie_compliance.min.js",
"/privacy-banner/storefront-banner.js",
"/consent-tracking-api/v0.1/consent-tracking-api.js",
"/simpleads/impression",
"go-mpulse.net/boomerang",
".siteintercept.qualtrics.com",
".sharethis.com",
".cdn4.forter.com",
".newrelic.com",
".googlesyndication.com",
".amazon-adsystem.com",
".onetrust.com",
"sc.omtrdc.net",
"doubleclick.net",
"hotjar.com",
"datadome.com",
"datadog-logs-us.js",
"tinypass.min.js",
"tracker.js",
"tracker.min.js",
"matomo.js",
".airship.com",
".adlightning.com",
".lab.amplitude.",
"privacy-notice.js",
"cookie_consent.js",
"tracking.js",
"accept-cookie.js",
"privacy_cookie.js",
"cast_sender.js",
"eu_cookie_compliance.js",
"eu_cookie_compliance.min.js",
"plugins/cookie-law-info/legacy/",
"ads.js",
"ads.min.js",
"insight.min.js",
"assets/TrackingPixel",
"cookieconsent.min.js",
"cookieconsent.js",
"adsbygoogle.js",
"otBannerSdk.js",
"otBannerSdk.min.js",
"tracking.min.js",
"trackings-min.",
"analytics.min.js",
"analytics.js", "https://ads.",
"http://ads.",
"https://ads-static.",
".pubmatic.com/AdServer/",
"https://tracking.",
"http://tracking.",
"https://static-tracking.",
];
for pattern in &patterns {
trie.insert(pattern);
}
trie
});
pub static URL_IGNORE_EMBEDED_TRIE: LazyLock<Trie> = LazyLock::new(|| {
let mut trie = Trie::new();
let patterns = [
"https://www.youtube.com/embed/", "https://www.google.com/maps/embed?", "https://maps.google.com", "https://player.vimeo.com/video/", "https://player.vimeo.com/api/player.js", "https://open.spotify.com/embed/", "https://w.soundcloud.com/player/", "https://platform.twitter.com/embed/", "https://www.instagram.com/embed.js", "https://www.facebook.com/plugins/", "https://cdn.embedly.com/widgets/", "https://player.twitch.tv/", "https://maps.googleapis.com/maps/", "https://www.youtube.com/player_api", "https://consentcdn.cookiebot.com", "https://www.youtube.com/iframe_api", "https://f.vimeocdn.com", "https://i.vimeocdn.com/",
"https://image2.pubmatic.com/AdServer/",
"https://ads.pubmatic.com/AdServer/js/",
"https://cdn.taboola.com/libtrc/static/topics/",
"https://pm-widget.taboola.com/",
"https://p.cquotient.com/pebble",
"https://globale-analytics-sdk.global-e.com/PROD/bundle.js",
"https://gum.criteo.com/syncframe",
"https://cdn.heapanalytics.com/js/",
"https://cdn.intellimize.co/",
"https://td.doubleclick.net/td/",
"https://gum.criteo.com/syncframe?",
"https://js.datadome.co/",
"https://www.googletagmanager.com/",
"https://secure.livechatinc.com/customer/action/open_chat", "setup-intercom-monitoring.js",
"setup-sentry.js",
"cast_sender.js",
"https://vercel.live/api/",
"https://shop.app/pay/hop?analytics_trace_id",
"https://cdn.readme.io/public/",
"https://use.fontawesome.com/",
"https://insight.adsrvr.org/track/",
"http://www.google-analytics.com/ga.js",
".optimizely.com/client_storage/",
"cxense.com/",
"https://tr.snapchat.com/",
"https://buy.tinypass.com",
"https://nimbleplot.com/",
"https://my.actiondata.co/js/tracker.php",
"https://ajax.googleapis.com/ajax/libs/webfont/",
"http://cdn2.editmysite.com/",
"https://cmp.osano.com/",
"https://api.exponea.com/js/service-worker.min.js",
"https://kit.fontawesome.com/",
"https://perf-na1.hsforms.com/embed/",
"https://use.typekit.net",
".amplitude.com",
".rudderstack.com",
"https://cdn.tailwindcss.com",
".sharethis.com",
"amazon-adsystem.com",
".vimeocdn.com",
"g.doubleclick.net",
"https://securepubads.g.doubleclick.net",
"googlesyndication.com",
"adsafeprotected.com",
"analytics.min.js",
".googlesyndication.com/safeframe/",
"/ccpa/user-consent.min.js",
"consent-manager",
"/cookiebanner/js/",
"cookielaw.org",
"bugsnag.min.js",
"otBannerSdk.js",
"privacy-notice.js",
".ingest.sentry.io/api",
".ssl-images-amazon.com/images/",
];
for pattern in &patterns {
trie.insert(pattern);
}
trie
});
pub static URL_IGNORE_SCRIPT_BASE_PATHS: LazyLock<Trie> = LazyLock::new(|| {
let mut trie = Trie::new();
let patterns = [
"wp-content/plugins/cookie-law-info",
"wp-content/plugins/borlabs-cookie/",
"wp-content/js/rlt-proxy.js",
"wp-admin/rest-proxy/",
"wp-content/mu-plugins/a8c-analytics/",
"analytics/",
"cookie-tracking",
];
for pattern in &patterns {
trie.insert(pattern);
}
trie
});
pub static URL_IGNORE_SCRIPT_STYLES_PATHS: LazyLock<Trie> = LazyLock::new(|| {
let mut trie = Trie::new();
let patterns = [
"wp-content/themes/",
"wp-content/plugins/dizo-image-hover/",
"wp-content/plugins/supreme-modules-pro-for-divi/",
"wp-content/plugins/page-builder-pmc/",
"wp-content/plugins/contact-form-7/",
"wp-content/plugins/responsive-lightbox/",
"wp-content/cache/breeze-minification/",
"wp-includes/js/mediaelement",
"wp-content/plugins/gravityforms/",
"wp-content/plugins/wp-rocket/assets/js/lazyload/",
"wp-content/plugins/w3-total-cache/",
"wp-content/js/bilmur.min.js",
"npm/bootstrap@",
];
for pattern in &patterns {
trie.insert(pattern);
}
trie
});
pub static URL_IGNORE_CSS: LazyLock<Trie> = LazyLock::new(|| {
let mut trie = Trie::new();
let patterns = [
"https://www.youtube.com/generate_",
"https://www.google.com/generate_",
"https://fonts.googleapis.com/icon",
"https://www.youtube.com/sw.js_data",
"https://play.google.com/log",
];
for pattern in &patterns {
trie.insert(pattern);
}
trie
});
pub static URL_IGNORE_TRIE_PATHS: LazyLock<Trie> = LazyLock::new(|| {
let mut trie = Trie::new();
let patterns = [
"privacy-notice.js",
"tracking.js",
"track.js",
"ads.js",
"analytics.js",
"privacy-notice.min.js",
"tracking.min.js",
"track.min.js",
"ads.min.js",
"analytics.min.js",
"otSDKStub.js",
"otBannerSdk.js",
"_vercel/insights/script.js",
"analytics.", ];
for pattern in &patterns {
trie.insert(pattern);
}
trie
});
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_url_ignore_trie_contains() {
let positive_cases = vec![
"https://www.googletagservices.com/tag/",
"https://www.google-analytics.com",
"https://www.googleanalytics.com",
".newrelic.com",
"privacy-notice.js",
];
let negative_cases = vec![
"https://not-a-tracked-url.com/script.js",
"https://google.com",
];
for case in positive_cases {
assert!(
URL_IGNORE_TRIE.contains_prefix(case),
"Trie should contain: {}",
case
);
}
for case in negative_cases {
assert!(
!URL_IGNORE_TRIE.contains_prefix(case),
"Trie should not contain: {}",
case
);
}
}
#[test]
fn test_url_ignore_embedded_trie_contains() {
let positive_cases = vec![
"https://www.youtube.com/embed/",
"https://www.google.com/maps/embed?",
".amplitude.com",
];
let negative_cases = vec![
"https://secure-site.com/resource.js",
"https://example.com/embed.js",
];
for case in positive_cases {
assert!(
URL_IGNORE_EMBEDED_TRIE.contains_prefix(case),
"Trie should contain: {}",
case
);
}
for case in negative_cases {
assert!(
!URL_IGNORE_EMBEDED_TRIE.contains_prefix(case),
"Trie should not contain: {}",
case
);
}
}
#[test]
fn test_url_ignore_script_base_paths_contains() {
let positive_cases = vec!["wp-content/plugins/cookie-law-info", "analytics/"];
let negative_cases = vec![
"wp-content/some-untracked-plugin/",
"random/path/analytics.js",
];
for case in positive_cases {
assert!(
URL_IGNORE_SCRIPT_BASE_PATHS.contains_prefix(case),
"Trie should contain: {}",
case
);
}
for case in negative_cases {
assert!(
!URL_IGNORE_SCRIPT_BASE_PATHS.contains_prefix(case),
"Trie should not contain: {}",
case
);
}
}
#[test]
fn test_url_ignore_script_style_paths_contains() {
let positive_cases = vec!["wp-content/themes/", "npm/bootstrap@"];
let negative_cases = vec![
"wp-content/some-other-theme/",
"wp-content/plugins/untracked-plugin/",
];
for case in positive_cases {
assert!(
URL_IGNORE_SCRIPT_STYLES_PATHS.contains_prefix(case),
"Trie should contain: {}",
case
);
}
for case in negative_cases {
assert!(
!URL_IGNORE_SCRIPT_STYLES_PATHS.contains_prefix(case),
"Trie should not contain: {}",
case
);
}
}
#[test]
fn test_url_ignore_css_contains() {
let positive_cases = vec![
"https://www.youtube.com/generate_204",
"https://www.youtube.com/generate_something",
"https://www.google.com/generate_204",
"https://fonts.googleapis.com/icon?family=Material+Icons",
"https://www.youtube.com/sw.js_data",
"https://play.google.com/log?format=json",
];
let negative_cases = vec![
"https://www.youtube.com/watch?v=abc",
"https://www.example.com/generate_",
"https://fonts.googleapis.com/css2?family=Roboto",
];
for case in positive_cases {
assert!(
URL_IGNORE_CSS.contains_prefix(case),
"Trie should contain: {}",
case
);
}
for case in negative_cases {
assert!(
!URL_IGNORE_CSS.contains_prefix(case),
"Trie should not contain: {}",
case
);
}
}
#[test]
fn test_url_ignore_trie_paths_contains() {
let positive_cases = vec!["privacy-notice.js", "tracking.js"];
let negative_cases = vec!["non-ignored.js", "non-related/tracking.js"];
for case in positive_cases {
assert!(
URL_IGNORE_TRIE_PATHS.contains_prefix(case),
"Trie should contain: {}",
case
);
}
for case in negative_cases {
assert!(
!URL_IGNORE_TRIE_PATHS.contains_prefix(case),
"Trie should not contain: {}",
case
);
}
}
}