def test_default_prefix(self): u = UrlParser('http://i.reddit.com/r/redditdev') u.switch_subdomain_by_extension() self.assertEquals('http://www.reddit.com/r/redditdev', u.unparse()) u = UrlParser('http://i.reddit.com/r/redditdev') u.switch_subdomain_by_extension('does-not-exist') self.assertEquals('http://www.reddit.com/r/redditdev', u.unparse())
def test_default_prefix(self): u = UrlParser('http://i.reddit.com/r/redditdev') u.switch_subdomain_by_extension() self.assertEquals('http://www.reddit.com/r/redditdev', u.unparse()) u = UrlParser('http://i.reddit.com/r/redditdev') u.switch_subdomain_by_extension('does-not-exist') self.assertEquals('http://www.reddit.com/r/redditdev', u.unparse())
def test_normal_urls(self): u = UrlParser('http://www.reddit.com/r/redditdev') u.switch_subdomain_by_extension('compact') result = u.unparse() self.assertEquals('http://i.reddit.com/r/redditdev', result) u = UrlParser(result) u.switch_subdomain_by_extension('mobile') result = u.unparse() self.assertEquals('http://m.reddit.com/r/redditdev', result)
def test_normal_urls(self): u = UrlParser('http://www.reddit.com/r/redditdev') u.switch_subdomain_by_extension('compact') result = u.unparse() self.assertEquals('http://i.reddit.com/r/redditdev', result) u = UrlParser(result) u.switch_subdomain_by_extension('mobile') result = u.unparse() self.assertEquals('http://simple.reddit.com/r/redditdev', result)
def __init__(self, space_compress=None, nav_menus=None, loginbox=True, infotext='', infotext_class=None, content=None, short_description='', title='', robots=None, show_sidebar=True, show_chooser=False, footer=True, srbar=True, page_classes=None, short_title=None, show_wiki_actions=False, extra_js_config=None, show_locationbar=False, **context): Templated.__init__(self, **context) self.title = title self.short_title = short_title self.short_description = short_description self.robots = robots self.infotext = infotext self.extra_js_config = extra_js_config self.show_wiki_actions = show_wiki_actions self.loginbox = loginbox self.show_sidebar = show_sidebar self.space_compress = space_compress # instantiate a footer self.footer = RedditFooter() if footer else None self.debug_footer = DebugFooter() self.supplied_page_classes = page_classes or [] #put the sort menus at the top self.nav_menu = MenuArea(menus = nav_menus) if nav_menus else None #add the infobar self.welcomebar = None self.newsletterbar = None self.locationbar = None self.infobar = None self.mobilewebredirectbar = None # generate a canonical link for google self.canonical_link = request.fullpath if c.render_style != "html": u = UrlParser(request.fullpath) u.set_extension("") u.hostname = g.domain if g.domain_prefix: u.hostname = "%s.%s" % (g.domain_prefix, u.hostname) self.canonical_link = u.unparse() # Generate a mobile link for Google. u = UrlParser(request.fullpath) u.switch_subdomain_by_extension('mobile') u.scheme = 'https' self.mobile_link = u.unparse() if self.show_infobar: if not infotext: if g.heavy_load_mode: # heavy load mode message overrides read only infotext = strings.heavy_load_msg elif g.read_only_mode: infotext = strings.read_only_msg elif g.live_config.get("announcement_message"): infotext = g.live_config["announcement_message"] if infotext: self.infobar = InfoBar( message=infotext, extra_class=infotext_class) elif (isinstance(c.site, DomainSR) and is_subdomain(c.site.domain, "imgur.com")): self.infobar = InfoBar(message= _("imgur.com domain listings (including this one) are " "currently disabled to speed up vote processing.") ) elif isinstance(c.site, AllMinus) and not c.user.gold: self.infobar = InfoBar(message=strings.all_minus_gold_only, extra_class="gold") if not c.user_is_loggedin: self.welcomebar = WelcomeBar() if feature.is_enabled('newsletter') and getattr(self, "show_newsletterbar", True): self.newsletterbar = NewsletterBar() if c.render_style == "compact": self.mobilewebredirectbar = MobileWebRedirectBar() show_locationbar &= not c.user.pref_hide_locationbar if (show_locationbar and c.used_localized_defaults and (not c.user_is_loggedin or not c.user.has_subscribed)): self.locationbar = LocationBar() self.srtopbar = None if srbar and not c.cname and not is_api(): self.srtopbar = SubredditTopBar() panes = [content] if c.user_is_loggedin and not is_api() and not self.show_wiki_actions: # insert some form templates for js to use # TODO: move these to client side templates gold_link = GoldPayment("gift", "monthly", months=1, signed=False, recipient="", giftmessage=None, passthrough=None, thing=None, clone_template=True, thing_type="link", ) gold_comment = GoldPayment("gift", "monthly", months=1, signed=False, recipient="", giftmessage=None, passthrough=None, thing=None, clone_template=True, thing_type="comment", ) report_form = ReportForm() if not feature.is_enabled('improved_sharing'): panes.append(ShareLink()) panes.append(report_form) if self.show_sidebar: panes.extend([gold_comment, gold_link]) if c.user_is_sponsor: panes.append(FraudForm()) self._content = PaneStack(panes) self.show_chooser = ( show_chooser and c.render_style == "html" and c.user_is_loggedin and ( isinstance(c.site, (DefaultSR, AllSR, ModSR, LabeledMulti)) or c.site.name == g.live_config["listing_chooser_explore_sr"] ) ) self.toolbars = self.build_toolbars() has_style_override = (c.user.pref_default_theme_sr and feature.is_enabled('stylesheets_everywhere') and c.user.pref_enable_default_themes) # if there is no style or the style is disabled for this subreddit self.no_sr_styles = (isinstance(c.site, DefaultSR) or (not self.get_subreddit_stylesheet_url(c.site) and not c.site.header) or (c.user and not c.user.use_subreddit_style(c.site))) self.default_theme_sr = DefaultSR() # use override stylesheet if they have custom styles disabled or # this subreddit has no custom stylesheet (or is the front page) if self.no_sr_styles: self.subreddit_stylesheet_url = self.get_subreddit_stylesheet_url( self.default_theme_sr) else: self.subreddit_stylesheet_url = self.get_subreddit_stylesheet_url(c.site) if has_style_override and self.no_sr_styles: sr = Subreddit._by_name(c.user.pref_default_theme_sr) # make sure they can still view their override subreddit if sr.can_view(c.user) and sr.stylesheet_url: self.subreddit_stylesheet_url = self.get_subreddit_stylesheet_url(sr) if c.can_apply_styles and c.allow_styles and sr.header: self.default_theme_sr = sr