URLS = flatten(( url_test("/media/redesign/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/redesign/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/redesign/img.foo", "/static/img.foo"), url_test("/media/img.foo", "/static/img.foo"), url_test("/media/redesign/css.foo", "/static/styles.foo"), url_test("/media/css.foo", "/static/styles.foo"), url_test("/media/redesign/js.foo", "/static/js.foo"), url_test("/media/js.foo", "/static/js.foo"), url_test("/media/redesign/fonts.foo", "/static/fonts.foo"), url_test("/media/fonts.foo", "/static/fonts.foo"), url_test("/media/uploads/demos/foobar123", "/docs/Web/Demos_of_open_web_technologies/", status_code=requests.codes.found), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O_Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O//Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/samples/canvas-tutorial/2_1_canvas_rect.html" ,"/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Rectangular_shape_example"), url_test("/samples/canvas-tutorial/2_2_canvas_moveto.html" ,"/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Moving_the_pen"), url_test("/samples/canvas-tutorial/2_3_canvas_lineto.html" ,"/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Lines"), url_test("/samples/canvas-tutorial/2_4_canvas_arc.html" ,"/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Arcs"), url_test("/samples/canvas-tutorial/2_5_canvas_quadraticcurveto.html" ,"/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Quadratic_Bezier_curves"), url_test("/samples/canvas-tutorial/2_6_canvas_beziercurveto.html" ,"/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Cubic_Bezier_curves"), url_test("/samples/canvas-tutorial/3_1_canvas_drawimage.html" ,"/docs/Web/API/Canvas_API/Tutorial/Using_images#Drawing_images"), url_test("/samples/canvas-tutorial/3_2_canvas_drawimage.html" ,"/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Tiling_an_image"), url_test("/samples/canvas-tutorial/3_3_canvas_drawimage.html" ,"/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Framing_an_image"), url_test("/samples/canvas-tutorial/3_4_canvas_gallery.html" ,"/docs/Web/API/Canvas_API/Tutorial/Using_images#Art_gallery_example"), url_test("/samples/canvas-tutorial/4_1_canvas_fillstyle.html" ,"/docs/Web/API/CanvasRenderingContext2D.fillStyle"), url_test("/samples/canvas-tutorial/4_2_canvas_strokestyle.html" ,"/docs/Web/API/CanvasRenderingContext2D.strokeStyle"), url_test("/samples/canvas-tutorial/4_3_canvas_globalalpha.html" ,"/docs/Web/API/CanvasRenderingContext2D.globalAlpha"), url_test("/samples/canvas-tutorial/4_4_canvas_rgba.html" ,"/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#An_example_using_rgba()"), url_test("/samples/canvas-tutorial/4_5_canvas_linewidth.html" ,"/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_lineWidth_example"), url_test("/samples/canvas-tutorial/4_6_canvas_linecap.html" ,"/docs/Web/API/CanvasRenderingContext2D.lineCap"), url_test("/samples/canvas-tutorial/4_7_canvas_linejoin.html" ,"/docs/Web/API/CanvasRenderingContext2D.lineJoin"), url_test("/samples/canvas-tutorial/4_8_canvas_miterlimit.html" ,"/docs/Web/API/CanvasRenderingContext2D.miterLimit"), url_test("/samples/canvas-tutorial/4_9_canvas_lineargradient.html" ,"/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createLinearGradient_example"), url_test("/samples/canvas-tutorial/4_10_canvas_radialgradient.html" ,"/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createRadialGradient_example"), url_test("/samples/canvas-tutorial/4_11_canvas_createpattern.html" ,"/docs/Web/API/CanvasRenderingContext2D.createPattern"), url_test("/samples/canvas-tutorial/5_1_canvas_savestate.html" ,"/docs/Web/API/Canvas_API/Tutorial/Transformations#A_save_and_restore_canvas_state_example"), url_test("/samples/canvas-tutorial/5_2_canvas_translate.html" ,"/docs/Web/API/CanvasRenderingContext2D.translate"), url_test("/samples/canvas-tutorial/5_3_canvas_rotate.html" ,"/docs/Web/API/CanvasRenderingContext2D.rotate"), url_test("/samples/canvas-tutorial/5_4_canvas_scale.html" ,"/docs/Web/API/CanvasRenderingContext2D.scale"), url_test("/samples/canvas-tutorial/6_1_canvas_composite.html" ,"/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/canvas-tutorial/6_2_canvas_clipping.html" ,"/docs/Web/API/Canvas_API/Tutorial/Compositing#Clipping_paths"), url_test("/samples/canvas-tutorial/globalCompositeOperation.html" ,"/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/domref/mozGetAsFile.html", "/docs/Web/API/HTMLCanvasElement.mozGetAsFile"), ))
flatten(( url_test("/media/redesign/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/redesign/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/redesign/img.foo", "/static/img.foo"), url_test("/media/img.foo", "/static/img.foo"), url_test("/media/redesign/css.foo", "/static/styles.foo"), url_test("/media/css.foo", "/static/styles.foo"), url_test("/media/redesign/js.foo", "/static/js.foo"), url_test("/media/js.foo", "/static/js.foo"), url_test("/media/redesign/fonts.foo", "/static/fonts.foo"), url_test("/media/fonts.foo", "/static/fonts.foo"), url_test("/media/uploads/demos/foobar123", "/docs/Web/Demos_of_open_web_technologies/", status_code=requests.codes.found), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O_Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O//Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test( "/samples/canvas-tutorial/2_1_canvas_rect.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Rectangular_shape_example" ), url_test( "/samples/canvas-tutorial/2_2_canvas_moveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Moving_the_pen"), url_test("/samples/canvas-tutorial/2_3_canvas_lineto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Lines"), url_test("/samples/canvas-tutorial/2_4_canvas_arc.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Arcs"), url_test( "/samples/canvas-tutorial/2_5_canvas_quadraticcurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Quadratic_Bezier_curves" ), url_test( "/samples/canvas-tutorial/2_6_canvas_beziercurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Cubic_Bezier_curves" ), url_test( "/samples/canvas-tutorial/3_1_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Drawing_images"), url_test( "/samples/canvas-tutorial/3_2_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Tiling_an_image" ), url_test( "/samples/canvas-tutorial/3_3_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Framing_an_image" ), url_test( "/samples/canvas-tutorial/3_4_canvas_gallery.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Art_gallery_example" ), url_test("/samples/canvas-tutorial/4_1_canvas_fillstyle.html", "/docs/Web/API/CanvasRenderingContext2D.fillStyle"), url_test("/samples/canvas-tutorial/4_2_canvas_strokestyle.html", "/docs/Web/API/CanvasRenderingContext2D.strokeStyle"), url_test("/samples/canvas-tutorial/4_3_canvas_globalalpha.html", "/docs/Web/API/CanvasRenderingContext2D.globalAlpha"), url_test( "/samples/canvas-tutorial/4_4_canvas_rgba.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#An_example_using_rgba()" ), url_test( "/samples/canvas-tutorial/4_5_canvas_linewidth.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_lineWidth_example" ), url_test("/samples/canvas-tutorial/4_6_canvas_linecap.html", "/docs/Web/API/CanvasRenderingContext2D.lineCap"), url_test("/samples/canvas-tutorial/4_7_canvas_linejoin.html", "/docs/Web/API/CanvasRenderingContext2D.lineJoin"), url_test("/samples/canvas-tutorial/4_8_canvas_miterlimit.html", "/docs/Web/API/CanvasRenderingContext2D.miterLimit"), url_test( "/samples/canvas-tutorial/4_9_canvas_lineargradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createLinearGradient_example" ), url_test( "/samples/canvas-tutorial/4_10_canvas_radialgradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createRadialGradient_example" ), url_test("/samples/canvas-tutorial/4_11_canvas_createpattern.html", "/docs/Web/API/CanvasRenderingContext2D.createPattern"), url_test( "/samples/canvas-tutorial/5_1_canvas_savestate.html", "/docs/Web/API/Canvas_API/Tutorial/Transformations#A_save_and_restore_canvas_state_example" ), url_test("/samples/canvas-tutorial/5_2_canvas_translate.html", "/docs/Web/API/CanvasRenderingContext2D.translate"), url_test("/samples/canvas-tutorial/5_3_canvas_rotate.html", "/docs/Web/API/CanvasRenderingContext2D.rotate"), url_test("/samples/canvas-tutorial/5_4_canvas_scale.html", "/docs/Web/API/CanvasRenderingContext2D.scale"), url_test( "/samples/canvas-tutorial/6_1_canvas_composite.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test( "/samples/canvas-tutorial/6_2_canvas_clipping.html", "/docs/Web/API/Canvas_API/Tutorial/Compositing#Clipping_paths"), url_test( "/samples/canvas-tutorial/globalCompositeOperation.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/domref/mozGetAsFile.html", "/docs/Web/API/HTMLCanvasElement.mozGetAsFile"), url_test("/Firefox_OS/Security", "/docs/Mozilla/Firefox_OS/Security"), url_test("/en-US/mobile", "/en-US/docs/Mozilla/Mobile"), url_test("/en-US/mobile/", "/en-US/docs/Mozilla/Mobile"), url_test("/en/mobile/", "/en/docs/Mozilla/Mobile"), url_test("/en-US/addons", "/en-US/Add-ons"), url_test("/en-US/addons/", "/en-US/Add-ons"), url_test("/en/addons/", "/en/Add-ons"), url_test("/en-US/mozilla", "/en-US/docs/Mozilla"), url_test("/en-US/mozilla/", "/en-US/docs/Mozilla"), url_test("/en/mozilla/", "/en/docs/Mozilla"), url_test("/en-US/web", "/en-US/docs/Web"), url_test("/en-US/web/", "/en-US/docs/Web"), url_test("/en/web/", "/en/docs/Web"), url_test("/en-US/learn/html5", "/en-US/docs/Web/Guide/HTML/HTML5"), url_test("/en-US/learn/html5/", "/en-US/docs/Web/Guide/HTML/HTML5"), url_test("/en/learn/html5/", "/en/docs/Web/Guide/HTML/HTML5"), url_test("/En/JavaScript/Reference/Objects/Array", "/en-US/docs/JavaScript/Reference/Global_Objects/Array"), url_test("/En/JavaScript/Reference/Objects", "/en-US/docs/JavaScript/Reference/Global_Objects/Object"), url_test("/En/Core_JavaScript_1.5_Reference/Objects/foo", "/en-US/docs/JavaScript/Reference/Global_Objects/foo"), url_test("/En/Core_JavaScript_1.5_Reference/foo", "/en-US/docs/JavaScript/Reference/foo"), url_test("/en-US/HTML5", "/en-US/docs/HTML/HTML5"), url_test("/es/HTML5", "/es/docs/HTML/HTML5"), url_test("/web-tech/2008/09/12/css-transforms", "/docs/CSS/Using_CSS_transforms"), url_test("/en-US/docs", "/en-US/docs/Web"), url_test("/es/docs/", "/es/docs/Web"), url_test("/en-US/devnews/index.php/feed.foo", "https://blog.mozilla.org/feed/"), url_test("/en-US/devnews/foo", "https://wiki.mozilla.org/Releases"), url_test("/en-US/learn/html", "/en-US/Learn/HTML"), url_test("/en/learn/html", "/en/Learn/HTML"), url_test("/en-US/learn/css", "/en-US/Learn/CSS"), url_test("/en/learn/css", "/en/Learn/CSS"), url_test("/en-US/learn/javascript", "/en-US/Learn/JavaScript"), url_test("/en/learn/javascript", "/en/Learn/JavaScript"), url_test("/en-US/learn", "/en-US/Learn"), url_test("/en/learn", "/en/Learn"), url_test("/en-US/demos/detail/bananabread", "https://github.com/kripken/BananaBread/"), url_test("/en/demos/detail/bananabread", "https://github.com/kripken/BananaBread/"), url_test("/en-US/demos/detail/bananabread/launch", "https://kripken.github.io/BananaBread/cube2/index.html"), url_test("/en/demos/detail/bananabread/launch", "https://kripken.github.io/BananaBread/cube2/index.html"), url_test("/en-US/demos", "/en-US/docs/Web/Demos_of_open_web_technologies"), url_test("/en/demos", "/en/docs/Web/Demos_of_open_web_technologies"), )))
flatten(( url_test("/media/redesign/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/redesign/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/redesign/img.foo", "/static/img.foo"), url_test("/media/img.foo", "/static/img.foo"), url_test("/media/redesign/css.foo", "/static/styles.foo"), url_test("/media/css.foo", "/static/styles.foo"), url_test("/media/redesign/js.foo", "/static/js.foo"), url_test("/media/js.foo", "/static/js.foo"), url_test("/media/redesign/fonts.foo", "/static/fonts.foo"), url_test("/media/fonts.foo", "/static/fonts.foo"), url_test( "/media/uploads/demos/foobar123", "/docs/Web/Demos_of_open_web_technologies/", status_code=requests.codes.found, ), url_test( "/docs/Mozilla/Projects/NSPR/Reference/I//O_Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions", ), url_test( "/docs/Mozilla/Projects/NSPR/Reference/I//O//Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions", ), url_test( "/samples/canvas-tutorial/2_1_canvas_rect.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Rectangular_shape_example", ), url_test( "/samples/canvas-tutorial/2_2_canvas_moveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Moving_the_pen", ), url_test( "/samples/canvas-tutorial/2_3_canvas_lineto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Lines", ), url_test( "/samples/canvas-tutorial/2_4_canvas_arc.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Arcs", ), url_test( "/samples/canvas-tutorial/2_5_canvas_quadraticcurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Quadratic_Bezier_curves", ), url_test( "/samples/canvas-tutorial/2_6_canvas_beziercurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Cubic_Bezier_curves", ), url_test( "/samples/canvas-tutorial/3_1_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Drawing_images", ), url_test( "/samples/canvas-tutorial/3_2_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Tiling_an_image", ), url_test( "/samples/canvas-tutorial/3_3_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Framing_an_image", ), url_test( "/samples/canvas-tutorial/3_4_canvas_gallery.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Art_gallery_example", ), url_test( "/samples/canvas-tutorial/4_1_canvas_fillstyle.html", "/docs/Web/API/CanvasRenderingContext2D.fillStyle", ), url_test( "/samples/canvas-tutorial/4_2_canvas_strokestyle.html", "/docs/Web/API/CanvasRenderingContext2D.strokeStyle", ), url_test( "/samples/canvas-tutorial/4_3_canvas_globalalpha.html", "/docs/Web/API/CanvasRenderingContext2D.globalAlpha", ), url_test( "/samples/canvas-tutorial/4_4_canvas_rgba.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#An_example_using_rgba()", ), url_test( "/samples/canvas-tutorial/4_5_canvas_linewidth.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_lineWidth_example", ), url_test( "/samples/canvas-tutorial/4_6_canvas_linecap.html", "/docs/Web/API/CanvasRenderingContext2D.lineCap", ), url_test( "/samples/canvas-tutorial/4_7_canvas_linejoin.html", "/docs/Web/API/CanvasRenderingContext2D.lineJoin", ), url_test( "/samples/canvas-tutorial/4_8_canvas_miterlimit.html", "/docs/Web/API/CanvasRenderingContext2D.miterLimit", ), url_test( "/samples/canvas-tutorial/4_9_canvas_lineargradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createLinearGradient_example", ), url_test( "/samples/canvas-tutorial/4_10_canvas_radialgradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createRadialGradient_example", ), url_test( "/samples/canvas-tutorial/4_11_canvas_createpattern.html", "/docs/Web/API/CanvasRenderingContext2D.createPattern", ), url_test( "/samples/canvas-tutorial/5_1_canvas_savestate.html", "/docs/Web/API/Canvas_API/Tutorial/Transformations#A_save_and_restore_canvas_state_example", ), url_test( "/samples/canvas-tutorial/5_2_canvas_translate.html", "/docs/Web/API/CanvasRenderingContext2D.translate", ), url_test( "/samples/canvas-tutorial/5_3_canvas_rotate.html", "/docs/Web/API/CanvasRenderingContext2D.rotate", ), url_test( "/samples/canvas-tutorial/5_4_canvas_scale.html", "/docs/Web/API/CanvasRenderingContext2D.scale", ), url_test( "/samples/canvas-tutorial/6_1_canvas_composite.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation", ), url_test( "/samples/canvas-tutorial/6_2_canvas_clipping.html", "/docs/Web/API/Canvas_API/Tutorial/Compositing#Clipping_paths", ), url_test( "/samples/canvas-tutorial/globalCompositeOperation.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation", ), url_test( "/samples/domref/mozGetAsFile.html", "/docs/Web/API/HTMLCanvasElement.mozGetAsFile", ), url_test("/Firefox_OS/Security", "/docs/Mozilla/Firefox_OS/Security"), url_test("/en-US/mobile", "/en-US/docs/Mozilla/Mobile"), url_test("/en-US/mobile/", "/en-US/docs/Mozilla/Mobile"), url_test("/en/mobile/", "/en/docs/Mozilla/Mobile"), url_test("/en-US/addons", "/en-US/Add-ons"), url_test("/en-US/addons/", "/en-US/Add-ons"), url_test("/en/addons/", "/en/Add-ons"), url_test("/en-US/mozilla", "/en-US/docs/Mozilla"), url_test("/en-US/mozilla/", "/en-US/docs/Mozilla"), url_test("/en/mozilla/", "/en/docs/Mozilla"), url_test("/en-US/web", "/en-US/docs/Web"), url_test("/en-US/web/", "/en-US/docs/Web"), url_test("/en/web/", "/en/docs/Web"), url_test("/en-US/learn/html5", "/en-US/docs/Web/Guide/HTML/HTML5"), url_test("/en-US/learn/html5/", "/en-US/docs/Web/Guide/HTML/HTML5"), url_test("/en/learn/html5/", "/en/docs/Web/Guide/HTML/HTML5"), url_test( "/En/JavaScript/Reference/Objects/Array", "/en-US/docs/JavaScript/Reference/Global_Objects/Array", ), url_test( "/En/JavaScript/Reference/Objects", "/en-US/docs/JavaScript/Reference/Global_Objects/Object", ), url_test( "/En/Core_JavaScript_1.5_Reference/Objects/foo", "/en-US/docs/JavaScript/Reference/Global_Objects/foo", ), url_test( "/En/Core_JavaScript_1.5_Reference/foo", "/en-US/docs/JavaScript/Reference/foo", ), url_test("/en-US/HTML5", "/en-US/docs/HTML/HTML5"), url_test("/es/HTML5", "/es/docs/HTML/HTML5"), url_test("/web-tech/2008/09/12/css-transforms", "/docs/CSS/Using_CSS_transforms"), url_test("/en-US/docs", "/en-US/docs/Web"), url_test("/es/docs/", "/es/docs/Web"), url_test("/en-US/devnews/index.php/feed.foo", "https://blog.mozilla.org/feed/"), url_test("/en-US/devnews/foo", "https://wiki.mozilla.org/Releases"), url_test("/en-US/learn/html", "/en-US/Learn/HTML"), url_test("/en/learn/html", "/en/Learn/HTML"), url_test("/en-US/learn/css", "/en-US/Learn/CSS"), url_test("/en/learn/css", "/en/Learn/CSS"), url_test("/en-US/learn/javascript", "/en-US/Learn/JavaScript"), url_test("/en/learn/javascript", "/en/Learn/JavaScript"), url_test("/en-US/learn", "/en-US/Learn"), url_test("/en/learn", "/en/Learn"), url_test( "/en-US/demos/detail/bananabread", "https://github.com/kripken/BananaBread/", ), url_test( "/en/demos/detail/bananabread", "https://github.com/kripken/BananaBread/", ), url_test( "/en-US/demos/detail/bananabread/launch", "https://kripken.github.io/BananaBread/cube2/index.html", ), url_test( "/en/demos/detail/bananabread/launch", "https://kripken.github.io/BananaBread/cube2/index.html", ), url_test("/en-US/demos", "/en-US/docs/Web/Demos_of_open_web_technologies"), url_test("/en/demos", "/en/docs/Web/Demos_of_open_web_technologies"), )))
URLS = flatten(( url_test("/media/redesign/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/redesign/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/redesign/img.foo", "/static/img.foo"), url_test("/media/img.foo", "/static/img.foo"), url_test("/media/redesign/css.foo", "/static/styles.foo"), url_test("/media/css.foo", "/static/styles.foo"), url_test("/media/redesign/js.foo", "/static/js.foo"), url_test("/media/js.foo", "/static/js.foo"), url_test("/media/redesign/fonts.foo", "/static/fonts.foo"), url_test("/media/fonts.foo", "/static/fonts.foo"), url_test("/media/uploads/demos/foobar123", "/docs/Web/Demos_of_open_web_technologies/", status_code=requests.codes.found), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O_Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O//Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/samples/canvas-tutorial/2_1_canvas_rect.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Rectangular_shape_example"), url_test("/samples/canvas-tutorial/2_2_canvas_moveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Moving_the_pen"), url_test("/samples/canvas-tutorial/2_3_canvas_lineto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Lines"), url_test("/samples/canvas-tutorial/2_4_canvas_arc.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Arcs"), url_test("/samples/canvas-tutorial/2_5_canvas_quadraticcurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Quadratic_Bezier_curves"), url_test("/samples/canvas-tutorial/2_6_canvas_beziercurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Cubic_Bezier_curves"), url_test("/samples/canvas-tutorial/3_1_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Drawing_images"), url_test("/samples/canvas-tutorial/3_2_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Tiling_an_image"), url_test("/samples/canvas-tutorial/3_3_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Framing_an_image"), url_test("/samples/canvas-tutorial/3_4_canvas_gallery.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Art_gallery_example"), url_test("/samples/canvas-tutorial/4_1_canvas_fillstyle.html", "/docs/Web/API/CanvasRenderingContext2D.fillStyle"), url_test("/samples/canvas-tutorial/4_2_canvas_strokestyle.html", "/docs/Web/API/CanvasRenderingContext2D.strokeStyle"), url_test("/samples/canvas-tutorial/4_3_canvas_globalalpha.html", "/docs/Web/API/CanvasRenderingContext2D.globalAlpha"), url_test("/samples/canvas-tutorial/4_4_canvas_rgba.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#An_example_using_rgba()"), url_test("/samples/canvas-tutorial/4_5_canvas_linewidth.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_lineWidth_example"), url_test("/samples/canvas-tutorial/4_6_canvas_linecap.html", "/docs/Web/API/CanvasRenderingContext2D.lineCap"), url_test("/samples/canvas-tutorial/4_7_canvas_linejoin.html", "/docs/Web/API/CanvasRenderingContext2D.lineJoin"), url_test("/samples/canvas-tutorial/4_8_canvas_miterlimit.html", "/docs/Web/API/CanvasRenderingContext2D.miterLimit"), url_test("/samples/canvas-tutorial/4_9_canvas_lineargradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createLinearGradient_example"), url_test("/samples/canvas-tutorial/4_10_canvas_radialgradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createRadialGradient_example"), url_test("/samples/canvas-tutorial/4_11_canvas_createpattern.html", "/docs/Web/API/CanvasRenderingContext2D.createPattern"), url_test("/samples/canvas-tutorial/5_1_canvas_savestate.html", "/docs/Web/API/Canvas_API/Tutorial/Transformations#A_save_and_restore_canvas_state_example"), url_test("/samples/canvas-tutorial/5_2_canvas_translate.html", "/docs/Web/API/CanvasRenderingContext2D.translate"), url_test("/samples/canvas-tutorial/5_3_canvas_rotate.html", "/docs/Web/API/CanvasRenderingContext2D.rotate"), url_test("/samples/canvas-tutorial/5_4_canvas_scale.html", "/docs/Web/API/CanvasRenderingContext2D.scale"), url_test("/samples/canvas-tutorial/6_1_canvas_composite.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/canvas-tutorial/6_2_canvas_clipping.html", "/docs/Web/API/Canvas_API/Tutorial/Compositing#Clipping_paths"), url_test("/samples/canvas-tutorial/globalCompositeOperation.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/domref/mozGetAsFile.html", "/docs/Web/API/HTMLCanvasElement.mozGetAsFile"), ))
SCL3_REDIRECT_URLS = list(flatten(( url_test("/media/redesign/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/css/foo-min.css", "/static/build/styles/foo.css"), url_test("/media/redesign/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/js/foo-min.js", "/static/build/js/foo.js"), url_test("/media/redesign/img.foo", "/static/img.foo"), url_test("/media/img.foo", "/static/img.foo"), url_test("/media/redesign/css.foo", "/static/styles.foo"), url_test("/media/css.foo", "/static/styles.foo"), url_test("/media/redesign/js.foo", "/static/js.foo"), url_test("/media/js.foo", "/static/js.foo"), url_test("/media/redesign/fonts.foo", "/static/fonts.foo"), url_test("/media/fonts.foo", "/static/fonts.foo"), url_test("/media/uploads/demos/foobar123", "/docs/Web/Demos_of_open_web_technologies/", status_code=requests.codes.found), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O_Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/docs/Mozilla/Projects/NSPR/Reference/I//O//Functions", "/docs/Mozilla/Projects/NSPR/Reference/I_O_Functions"), url_test("/samples/canvas-tutorial/2_1_canvas_rect.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Rectangular_shape_example"), url_test("/samples/canvas-tutorial/2_2_canvas_moveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Moving_the_pen"), url_test("/samples/canvas-tutorial/2_3_canvas_lineto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Lines"), url_test("/samples/canvas-tutorial/2_4_canvas_arc.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Arcs"), url_test("/samples/canvas-tutorial/2_5_canvas_quadraticcurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Quadratic_Bezier_curves"), url_test("/samples/canvas-tutorial/2_6_canvas_beziercurveto.html", "/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#Cubic_Bezier_curves"), url_test("/samples/canvas-tutorial/3_1_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Drawing_images"), url_test("/samples/canvas-tutorial/3_2_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Tiling_an_image"), url_test("/samples/canvas-tutorial/3_3_canvas_drawimage.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Example.3A_Framing_an_image"), url_test("/samples/canvas-tutorial/3_4_canvas_gallery.html", "/docs/Web/API/Canvas_API/Tutorial/Using_images#Art_gallery_example"), url_test("/samples/canvas-tutorial/4_1_canvas_fillstyle.html", "/docs/Web/API/CanvasRenderingContext2D.fillStyle"), url_test("/samples/canvas-tutorial/4_2_canvas_strokestyle.html", "/docs/Web/API/CanvasRenderingContext2D.strokeStyle"), url_test("/samples/canvas-tutorial/4_3_canvas_globalalpha.html", "/docs/Web/API/CanvasRenderingContext2D.globalAlpha"), url_test("/samples/canvas-tutorial/4_4_canvas_rgba.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#An_example_using_rgba()"), url_test("/samples/canvas-tutorial/4_5_canvas_linewidth.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_lineWidth_example"), url_test("/samples/canvas-tutorial/4_6_canvas_linecap.html", "/docs/Web/API/CanvasRenderingContext2D.lineCap"), url_test("/samples/canvas-tutorial/4_7_canvas_linejoin.html", "/docs/Web/API/CanvasRenderingContext2D.lineJoin"), url_test("/samples/canvas-tutorial/4_8_canvas_miterlimit.html", "/docs/Web/API/CanvasRenderingContext2D.miterLimit"), url_test("/samples/canvas-tutorial/4_9_canvas_lineargradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createLinearGradient_example"), url_test("/samples/canvas-tutorial/4_10_canvas_radialgradient.html", "/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors#A_createRadialGradient_example"), url_test("/samples/canvas-tutorial/4_11_canvas_createpattern.html", "/docs/Web/API/CanvasRenderingContext2D.createPattern"), url_test("/samples/canvas-tutorial/5_1_canvas_savestate.html", "/docs/Web/API/Canvas_API/Tutorial/Transformations#A_save_and_restore_canvas_state_example"), url_test("/samples/canvas-tutorial/5_2_canvas_translate.html", "/docs/Web/API/CanvasRenderingContext2D.translate"), url_test("/samples/canvas-tutorial/5_3_canvas_rotate.html", "/docs/Web/API/CanvasRenderingContext2D.rotate"), url_test("/samples/canvas-tutorial/5_4_canvas_scale.html", "/docs/Web/API/CanvasRenderingContext2D.scale"), url_test("/samples/canvas-tutorial/6_1_canvas_composite.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/canvas-tutorial/6_2_canvas_clipping.html", "/docs/Web/API/Canvas_API/Tutorial/Compositing#Clipping_paths"), url_test("/samples/canvas-tutorial/globalCompositeOperation.html", "/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation"), url_test("/samples/domref/mozGetAsFile.html", "/docs/Web/API/HTMLCanvasElement.mozGetAsFile"), url_test("/Firefox_OS/Security", "/docs/Mozilla/Firefox_OS/Security"), url_test("/en-US/mobile", "/en-US/docs/Mozilla/Mobile"), url_test("/en-US/mobile/", "/en-US/docs/Mozilla/Mobile"), url_test("/en/mobile/", "/en/docs/Mozilla/Mobile"), url_test("/en-US/addons", "/en-US/Add-ons"), url_test("/en-US/addons/", "/en-US/Add-ons"), url_test("/en/addons/", "/en/Add-ons"), url_test("/en-US/mozilla", "/en-US/docs/Mozilla"), url_test("/en-US/mozilla/", "/en-US/docs/Mozilla"), url_test("/en/mozilla/", "/en/docs/Mozilla"), url_test("/en-US/web", "/en-US/docs/Web"), url_test("/en-US/web/", "/en-US/docs/Web"), url_test("/en/web/", "/en/docs/Web"), url_test("/en-US/learn/html5", "/en-US/docs/Web/Guide/HTML/HTML5"), url_test("/en-US/learn/html5/", "/en-US/docs/Web/Guide/HTML/HTML5"), url_test("/en/learn/html5/", "/en/docs/Web/Guide/HTML/HTML5"), url_test("/En/JavaScript/Reference/Objects/Array", "/en-US/docs/JavaScript/Reference/Global_Objects/Array"), url_test("/En/JavaScript/Reference/Objects", "/en-US/docs/JavaScript/Reference/Global_Objects/Object"), url_test("/En/Core_JavaScript_1.5_Reference/Objects/foo", "/en-US/docs/JavaScript/Reference/Global_Objects/foo"), url_test("/En/Core_JavaScript_1.5_Reference/foo", "/en-US/docs/JavaScript/Reference/foo"), url_test("/en-US/HTML5", "/en-US/docs/HTML/HTML5"), url_test("/es/HTML5", "/es/docs/HTML/HTML5"), url_test("/web-tech/2008/09/12/css-transforms", "/docs/CSS/Using_CSS_transforms"), url_test("/en-US/docs", "/en-US/docs/Web"), url_test("/es/docs/", "/es/docs/Web"), url_test("/en-US/devnews/index.php/feed.foo", "https://blog.mozilla.org/feed/"), url_test("/en-US/devnews/foo", "https://wiki.mozilla.org/Releases"), url_test("/en-US/learn/html", "/en-US/Learn/HTML"), url_test("/en/learn/html", "/en/Learn/HTML"), url_test("/en-US/learn/css", "/en-US/Learn/CSS"), url_test("/en/learn/css", "/en/Learn/CSS"), url_test("/en-US/learn/javascript", "/en-US/Learn/JavaScript"), url_test("/en/learn/javascript", "/en/Learn/JavaScript"), url_test("/en-US/learn", "/en-US/Learn"), url_test("/en/learn", "/en/Learn"), url_test("/en-US/demos/detail/bananabread", "https://github.com/kripken/BananaBread/"), url_test("/en/demos/detail/bananabread", "https://github.com/kripken/BananaBread/"), url_test("/en-US/demos/detail/bananabread/launch", "https://kripken.github.io/BananaBread/cube2/index.html"), url_test("/en/demos/detail/bananabread/launch", "https://kripken.github.io/BananaBread/cube2/index.html"), url_test("/en-US/demos", "/en-US/docs/Web/Demos_of_open_web_technologies"), url_test("/en/demos", "/en/docs/Web/Demos_of_open_web_technologies"), )))