def test_no_duplicates_in_js(self): js = ([JSSource(src="source%d"%i) for i in xrange(5)] + [JSSource(src="source%d"%i) for i in xrange(2,10)]) w = Widget(javascript=js) self.failUnlessEqual( [j.src for j in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(10)] ) self.failUnlessEqual(len(w.retrieve_resources()['head']), 10)
def test_order_is_preserved_in_css(self): css = [CSSSource(src="source%d"%i) for i in xrange(5)] w = Widget(css=css) self.failUnlessEqual( [c.src for c in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(5)] )
def test_order_is_preserved_in_js(self): js = [JSSource(src="source%d"%i) for i in xrange(5)] w = Widget(javascript=js) self.failUnlessEqual( [j.src for j in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(5)] )
def test_resources_are_collected_from_children(self): c = count() children = [ Widget(css=[CSSSource(src='source%d'% c.next()) for i in xrange(5)]) for i in xrange(5) ] p = Widget(children=children) self.assertEqual(len(p.retrieve_resources()[locations.head]), 25)
def test_order_is_preserved_in_css_and_css_is_in_head(self): css = [CSSSource(src="source%d"%i) for i in xrange(5)] w = Widget(css=css) resources = w.retrieve_resources() self.failUnlessEqual( [c.src for c in resources[locations.head]], ["source%d"%i for i in xrange(5)] )
def test_no_duplicates_in_css(self): css = ([CSSSource(src="source%d"%i) for i in xrange(5)] + [CSSSource(src="source%d"%i) for i in xrange(2,10)]) w = Widget(css=css) self.failUnlessEqual( [c.src for c in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(10)] )
def test_resources_are_classified_correctly(self): js = [JSSource(src="js%d-%s"%(i,l), location=l) for l in locations for i in xrange(5)] w = Widget(javascript=js) resources = w.retrieve_resources() for l in locations: self.failUnlessEqual( [r.src for r in resources[l]], ["js%d-%s"%(i,l) for i in xrange(5)] )
def test_resource_dependencies_are_collected(self): c1 = CSSSource(src="c1") c2 = CSSSource(src="c2") j1 = JSSource(src="d1") j2 = JSSource(src="d2") js = JSSource(src="js", css=[c1,c2], javascript=[j1,j2]) css = CSSSource(src="css", css=[c1,c2], javascript=[j1,j2]) w = Widget(javascript=[js], css=[css]) head_resources = w.retrieve_resources()['head'] js = filter(lambda s: isinstance(s, JSMixin), head_resources) css = filter(lambda s: isinstance(s, CSSMixin), head_resources) self.failUnlessEqual(len(css), 3) self.failUnlessEqual(len(js), 3)