From 7231a68222cb923230c0443d86dee24360a092e2 Mon Sep 17 00:00:00 2001 From: Stephen Wanhella Date: Sat, 4 Jul 2015 16:04:12 -0700 Subject: [PATCH 1/8] Fixed typos in Bonfire: Friendly Date Ranges #1156 --- challenges/advanced-bonfires.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/advanced-bonfires.json b/challenges/advanced-bonfires.json index f729bde4e2..3816d28ded 100644 --- a/challenges/advanced-bonfires.json +++ b/challenges/advanced-bonfires.json @@ -277,7 +277,7 @@ ], "tests": [ "assert.deepEqual(friendly(['2015-07-01', '2015-07-04']), ['July 1st','4th'], 'ending month should be omitted since it is already mentioned');", - "assert.deepEqual(friendly(['2015-12-01', '2016-02-03']), ['December 1st','February 3rd'], 'one month apart can be inferred it is the next year');", + "assert.deepEqual(friendly(['2015-12-01', '2016-02-03']), ['December 1st','February 3rd'], 'two months apart can be inferred if it is the next year');", "assert.deepEqual(friendly(['2015-12-01', '2017-02-03']), ['December 1st, 2015','February 3rd, 2017']);", "assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th, 2016']);", "assert.deepEqual(friendly(['2017-01-01', '2017-01-01']), ['January 1st, 2017'], 'since we do not duplicate only return once');", From 8cbf6d224c919c2b734ffa3aa71964f07bb8f4d2 Mon Sep 17 00:00:00 2001 From: LumenTeun Date: Wed, 8 Jul 2015 21:19:34 +0200 Subject: [PATCH 2/8] Improved consitency in 'Friendly Date Ranges' test cases. #410 --- challenges/advanced-bonfires.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/advanced-bonfires.json b/challenges/advanced-bonfires.json index f729bde4e2..8d13526b7f 100644 --- a/challenges/advanced-bonfires.json +++ b/challenges/advanced-bonfires.json @@ -279,7 +279,7 @@ "assert.deepEqual(friendly(['2015-07-01', '2015-07-04']), ['July 1st','4th'], 'ending month should be omitted since it is already mentioned');", "assert.deepEqual(friendly(['2015-12-01', '2016-02-03']), ['December 1st','February 3rd'], 'one month apart can be inferred it is the next year');", "assert.deepEqual(friendly(['2015-12-01', '2017-02-03']), ['December 1st, 2015','February 3rd, 2017']);", - "assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th, 2016']);", + "assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th'], 'one month apart can be inferred it is the same year');", "assert.deepEqual(friendly(['2017-01-01', '2017-01-01']), ['January 1st, 2017'], 'since we do not duplicate only return once');", "assert.deepEqual(friendly(['2022-09-05', '2023-09-04']), ['September 5th, 2022','September 4th, 2023']);" ], From 84c8eecd3bc906335b6544f1443d687ea7b842ae Mon Sep 17 00:00:00 2001 From: benmcmahon100 Date: Mon, 3 Aug 2015 16:42:26 +0100 Subject: [PATCH 3/8] Fixed route on waypoint-label-bootstrap-wells and the tests. Fixed the test messages on waypoint-give-each-element-a-unique-id --- challenges/bootstrap.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/challenges/bootstrap.json b/challenges/bootstrap.json index ea01b15573..bb4d81430e 100644 --- a/challenges/bootstrap.json +++ b/challenges/bootstrap.json @@ -1874,7 +1874,7 @@ }, { "id": "bad87fee1348bd9aec908854", - "name": "Waypoint: Label Boostrap Wells", + "name": "Waypoint: Label Bootstrap Wells", "dashedName": "waypoint-label-bootstrap-wells", "difficulty": 2.26, "description": [ @@ -1883,9 +1883,9 @@ "Above your right-well, inside its \"col-xs-6\" div element, add a h4 element with the text \"#right-well\"." ], "tests": [ - "assert($('.col-xs-12').children('h4') && $('.col-xs-12').children('h4').length > 1, 'Add an h4 element to each of your <div class='col-xs-6'> elements.')", - "assert(new RegExp('#left-well','gi').test($('h4').text()), 'One h4 element should have the text \"#left-well\".')", - "assert(new RegExp('#right-well','gi').test($('h4').text()), 'One h4 element should have the text \"#right-well\".')" + "assert($('.col-xs-12').children('h4') && $('.col-xs-12').children('h4').length > 1, 'Add an h4 element to each of your <div class=\\'col-xs-6\\'> elements.');", + "assert(new RegExp('#left-well','gi').test($('h4').text()), 'One h4 element should have the text \"#left-well\".');", + "assert(new RegExp('#right-well','gi').test($('h4').text()), 'One h4 element should have the text \"#right-well\".');" ], "challengeSeed": [ "
", @@ -1930,12 +1930,12 @@ "Give each of your buttons a unique id like, starting with \"target1\" and ending with \"target6\"." ], "tests": [ - "assert($('#target1') && $('#target1').length > 0, 'One button element should have the id \"#target1\".')", - "assert($('#target2') && $('#target2').length > 0, 'One button element should have the id \"#target2\".')", - "assert($('#target3') && $('#target3').length > 0, 'One button element should have the id \"#target3\".')", - "assert($('#target4') && $('#target4').length > 0, 'One button element should have the id \"#target4\".')", - "assert($('#target5') && $('#target5').length > 0, 'One button element should have the id \"#target5\".')", - "assert($('#target6') && $('#target6').length > 0, 'One button element should have the id \"#target6\".')" + "assert($('#target1') && $('#target1').length > 0, 'One button element should have the id \"target1\".')", + "assert($('#target2') && $('#target2').length > 0, 'One button element should have the id \"target2\".')", + "assert($('#target3') && $('#target3').length > 0, 'One button element should have the id \"target3\".')", + "assert($('#target4') && $('#target4').length > 0, 'One button element should have the id \"target4\".')", + "assert($('#target5') && $('#target5').length > 0, 'One button element should have the id \"target5\".')", + "assert($('#target6') && $('#target6').length > 0, 'One button element should have the id \"target6\".')" ], "challengeSeed": [ "
", From f7e842ca78a36565514c90a3056615048e3c056c Mon Sep 17 00:00:00 2001 From: benmcmahon100 Date: Mon, 3 Aug 2015 17:01:27 +0100 Subject: [PATCH 4/8] Hardened The check-the-length-property-of-a-string-variable challenge to make it hard to get no tests run --- challenges/basic-javascript.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json index 2e9e21ffe2..d444d15902 100644 --- a/challenges/basic-javascript.json +++ b/challenges/basic-javascript.json @@ -121,23 +121,26 @@ "For example, if we created a variable var firstName = \"Julie\", we could find out how long the string \"Julie\" is by using the firstName.length property." ], "tests": [ - "assert((function(){if(typeof(lastNameLength) != 'undefined' && typeof(lastNameLength) == 'number' && lastNameLength == 4){return(true);}else{return(false);}})(), 'lastNameLength should be equal to four')" + "assert((function(){if(typeof(lastNameLength) != 'undefined' && typeof(lastNameLength) == 'number' && lastNameLength == 4){return(true);}else{return(false);}})(), 'lastNameLength should be equal to four')", + "assert((function(){if(editor.getValue().match(/\\.length/gi).length >= 2 && editor.getValue().match(/var lastNameLength \\= 0;/gi).length >= 1){return(true);}else{return(false);}})(), 'You should be getting the length of lastName by using .length like this lastName.length');" ], "challengeSeed": [ + "var firstNameLength = 0;", + "var lastNameLength = 0;", "var firstName = \"Madeline\";", "", - "var firstNameLength = firstName.length;", + "firstNameLength = firstName.length;", "", "var lastName = \"Chen\";", "", - "var lastNameLength = lastName;", + "lastNameLength = lastName;", "", "", "", "// You can ignore this.", "// We use this to show you the value of your variable in your output box.", "// We'll learn about functions soon.", - "if(typeof(lastNameLength) != 'undefined')(function(v){return(v);})(lastNameLength);}" + "if(typeof(lastNameLength) != 'undefined'){(function(v){return(v);})(lastNameLength);}" ], "challengeType": 1 }, From 6fd7e7663cded0dc76a808abec52c0ca4fe0db02 Mon Sep 17 00:00:00 2001 From: benmcmahon100 Date: Mon, 3 Aug 2015 18:02:26 +0100 Subject: [PATCH 5/8] Generalised RegEx for waypoint-make-it-functional fix https://github.com/FreeCodeCamp/freecodecamp/issues/1476 added comment to show where to block exploits in jsframework --- challenges/basic-javascript.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json index d444d15902..92cb7d80e1 100644 --- a/challenges/basic-javascript.json +++ b/challenges/basic-javascript.json @@ -647,7 +647,7 @@ "Let's try creating and calling a function now called myFunction" ], "tests":[ - "assert((function(){if(typeof(f) !== 'undefined' && typeof(f) === 'number' && f === a + b && editor.getValue().match(RegExp('return\\\\(a\\\\+b\\\\)', 'g')).length >= 1){return(true);}else{return(false);}})(), 'Your function should return the value of a + b');" + "assert((function(){if(typeof(f) !== 'undefined' && typeof(f) === 'number' && f === a + b && editor.getValue().match(/return/gi).length >= 1 && editor.getValue().match(/a/gi).length >= 1 && editor.getValue().match(/b/gi).length >= 1 && editor.getValue().match(/\\+/gi).length >= 1){return(true);}else{return(false);}})(), 'Your function should return the value of a + b');" ], "challengeSeed":[ "var a = 4;", From de124a4f815895e9de9ba9b0a0f824b63c73c42a Mon Sep 17 00:00:00 2001 From: benmcmahon100 Date: Mon, 3 Aug 2015 20:43:23 +0100 Subject: [PATCH 6/8] Fixed two typos and fixed a no tests tun error --- challenges/basic-javascript.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json index 92cb7d80e1..319ae35809 100644 --- a/challenges/basic-javascript.json +++ b/challenges/basic-javascript.json @@ -157,16 +157,19 @@ "Try looking at the firstLetterOfFirstName variable declaration if you get stuck." ], "tests": [ - "assert((function(){if(typeof(firstLetterOfLastName) != 'undefined' && typeof(firstLetterOfLastName) == 'string' && firstLetterOfLastName == 'C'){return(true);}else{return(false);}})(), 'The first letter of firstLetterOfLastName should be a C');" + "assert((function(){if(typeof(firstLetterOfLastName) != 'undefined' && editor.getValue().match(/\\[0\\]/gi) && typeof(firstLetterOfLastName) == 'string' && firstLetterOfLastName == 'C'){return(true);}else{return(false);}})(), 'The first letter of firstLetterOfLastName should be a C');" ], "challengeSeed": [ + "var firstLetterOfLastName = \"\"", + "var firstLetterOfLastName = \"\"", + "", "var firstName = \"Madeline\";", "", - "var firstLetterOfFirstName = firstName[0];", + "firstLetterOfFirstName = firstName[0];", "", "var lastName = \"Chen\";", "", - "var firstLetterOfLastName = lastName;", + "firstLetterOfLastName = lastName;", "", "", "// You can ignore this.", @@ -565,7 +568,7 @@ "difficulty": "9.9818", "description": [ "", - "Now that we've learn how to pop things from the end of the array, we need to learn how to push stuff back to the end", + "Now that we've learned how to pop things from the end of the array, we need to learn how to push stuff back to the end", "Let's take the code we had last time and push this value to the end: ['dog', 3] " ], "tests": [ @@ -797,7 +800,7 @@ "description":[ "", "Loops are a critical part of any program! The next few challenges", - "first we will be taking a look at the for loop", + "first we will be taking a look at the while loop", "", "var ourArray = [];", "var i = 0;", From 84ff621576ec0b287ee9dffac4d46b31e8cbc2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Djordje=20Lacmanovi=C4=87?= Date: Tue, 4 Aug 2015 00:39:11 +0200 Subject: [PATCH 7/8] fixed a typo as per issue 1473 --- challenges/bootstrap.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenges/bootstrap.json b/challenges/bootstrap.json index bb4d81430e..c0b4014f93 100644 --- a/challenges/bootstrap.json +++ b/challenges/bootstrap.json @@ -797,8 +797,8 @@ "Delete the \".red-text\", \"p\", and \".smaller-image\" CSS declarations from your style element so that the only declarations left in your style element are \"h2\" and \"thick-green-border\". Then Delete the p element that contains a dead link. Then remove the \"red-text\" class from your h2 element and replace it with the \"text-primary\" Bootstrap class. Finally, remove the \"smaller-image\" class from your first img element and replace it with the img-responsive class." ], "tests": [ - "assert(!$('h2').hasClass('red-text'), 'You h2 element should no longer have the class \"red-text\".')", - "assert($('h2').hasClass('text-primary'), 'You h2 element should now have the class \"text-primary\".')", + "assert(!$('h2').hasClass('red-text'), 'Your h2 element should no longer have the class \"red-text\".')", + "assert($('h2').hasClass('text-primary'), 'Your h2 element should now have the class \"text-primary\".')", "assert(!$('p').css('font-family').match(/monospace/i), 'Your paragraph elements should no longer use the font \"Monospace\".')", "assert(!$('img').hasClass('smaller-image'), 'Remove the \"smaller-image\" class from your top image.')", "assert($('.img-responsive').length > 1, 'Add the \"img-responsive\" class to your top image.')" From 7dcfdeaeeef202af025591fa820f82676f2ad7bf Mon Sep 17 00:00:00 2001 From: benmcmahon100 Date: Tue, 4 Aug 2015 00:53:20 +0100 Subject: [PATCH 8/8] fix https://github.com/FreeCodeCamp/freecodecamp/issues/1450 missing semi-colon and assert( --- challenges/jquery-ajax-and-json.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenges/jquery-ajax-and-json.json b/challenges/jquery-ajax-and-json.json index 92509ffade..d482a60f3f 100644 --- a/challenges/jquery-ajax-and-json.json +++ b/challenges/jquery-ajax-and-json.json @@ -160,8 +160,8 @@ "Make all the button element with the id \"target3\" fadeOut. $('#target3').addClass('animated fadeOut')." ], "tests": [ - "$('#target3').hasClass('animated') && $('#target3').hasClass('fadeOut'), 'Select the buttonelement with the id of \"target3\" and use the jQuery addClass() function to give it the classes of \"animated\" and \"fadeOut\".')", - "assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.')" + "assert($('#target3').hasClass('animated') && $('#target3').hasClass('fadeOut'), 'Select the buttonelement with the id of \"target3\" and use the jQuery addClass() function to give it the classes of \"animated\" and \"fadeOut\".');", + "assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.');" ], "challengeSeed": [ "fccss",