<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zma24</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zma24"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Zma24"/>
	<updated>2026-09-11T17:34:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144724</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144724"/>
		<updated>2022-04-11T22:40:06Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Project Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - After checking the &amp;quot;Apply penalty policy&amp;quot; box and clicking the 'save' or 'create' button on the Due dates tab, the box is unchecked on page refresh.&lt;br /&gt;
[[File:Issue 3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
* '''Issue 7''' - Adding test cases to check the late policy applied actually works to subtract points from the students.&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:517_Final_flow_chart.drawio.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Files to be refactored ===&lt;br /&gt;
&lt;br /&gt;
* '''Issue 1''' &lt;br /&gt;
Check how to store assignment information into session and fix it.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/late_policies/new.html.erb  &amp;lt;br&amp;gt;&lt;br /&gt;
2. app/views/assignments/edit/_due_dates.html.erb  &amp;lt;br&amp;gt;&lt;br /&gt;
3. app/controllers/assignments_controller.rb  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' &lt;br /&gt;
Store assignment information in session through the creation of late policies.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/late_policies/new.html.erb  &amp;lt;br&amp;gt;&lt;br /&gt;
2. app/views/assignments/edit/_due_dates.html.erb  &amp;lt;br&amp;gt;&lt;br /&gt;
3. app/controllers/assignments_controller.rb  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' &lt;br /&gt;
Save late policy information of this assignment into database.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/assignments/edit/_due_dates.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
2. app/controllers/assignments_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' &lt;br /&gt;
Show late policy of current assignment on student view page.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/student_task/view.html.erb &amp;lt;br&amp;gt;&lt;br /&gt;
2. app/controllers/student_task_controller.rb &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' &lt;br /&gt;
Create buttons link to all late policies on both main page and assigment view page.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/assignments/edit/_late_policy.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
2. app/controllers/assignments_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' &lt;br /&gt;
A button link to all late policies on assignment/new page to show all policies.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/views/assignments/edit/_late_policy.html.erb&amp;lt;br&amp;gt;&lt;br /&gt;
2. app/controllers/assignments_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Issue 7''' &lt;br /&gt;
Fix the late policy function to make it work.&amp;lt;br&amp;gt;&lt;br /&gt;
1. app/controllers/late_policies_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
2. app/controllers/assignments_controller.rb&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
=== Testing Goals and Test Objects ===&lt;br /&gt;
&lt;br /&gt;
#When logging in as a student:&lt;br /&gt;
##You can see the late policy details of your assignments&lt;br /&gt;
##The late policy works correctly if you submit your assignment late&lt;br /&gt;
#When logging in as an instructor:&lt;br /&gt;
##There is a button to navigate you to the page showing all the late policies&lt;br /&gt;
##You can see the details of the late policy when creating or editing an assignment&lt;br /&gt;
##The &amp;quot;back&amp;quot; button will lead to a correct webpage when creating or editing an assignment&lt;br /&gt;
##The &amp;quot;Apply penalty policy&amp;quot; box is saved after submitting the form when creating or editing an assignment&lt;br /&gt;
&lt;br /&gt;
=== RSpec Unit Tests ===&lt;br /&gt;
'''''Test cases provided here, will add RSpec code blocks for the final submission'''''&lt;br /&gt;
*Student Waitlist&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting added to the waitlist for a topic &lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The topic for an assignment has no available slots&lt;br /&gt;
   And: Student tries to signup for a topic&lt;br /&gt;
  Then: The team that the student is a part of should be added to the waitlist for the topic.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting enrolled in a topic &lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The topic for an assignment has available slots&lt;br /&gt;
   And: Student tries to signup for a topic&lt;br /&gt;
  Then: The team that the student is a part of should be enrolled for the topic.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: All waitlisted topics getting dropped&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: Student gets enrolled into a course for which he was waitlisted before.&lt;br /&gt;
  Then: The team that the student is a part of should be dropped from the remaining waitlisted topics.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: All waitlisted teams getting dropped&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The deadline for a topic passes.&lt;br /&gt;
  Then: All the waitlisted teams for that particular topic must be dropped.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting enrolled in a topic&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The enrolled team for a topic drops&lt;br /&gt;
  Then: The team that was waitlisted earlier for the topics must be enrolled.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regression Testing ===&lt;br /&gt;
''In order to ensure complete coverage, testing of the changes done between the end of last semester and this project will be done to ensure that ''&lt;br /&gt;
''old test cases still pass.''&lt;br /&gt;
&lt;br /&gt;
# Make sure all existing waitlist functionality still passes&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza/tree/beta GitHub Repository]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144719</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144719"/>
		<updated>2022-04-11T22:19:23Z</updated>

		<summary type="html">&lt;p&gt;Zma24: Undo revision 144718 by Zma24 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - After checking the &amp;quot;Apply penalty policy&amp;quot; box and clicking the 'save' or 'create' button on the Due dates tab, the box is unchecked on page refresh.&lt;br /&gt;
[[File:Issue 3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
* '''Issue 7''' - Adding test cases to check the late policy applied actually works to subtract points from the students.&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:517_Final_flow_chart.drawio.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
=== Testing Goals and Test Objects ===&lt;br /&gt;
&lt;br /&gt;
#When logging in as a student:&lt;br /&gt;
##You can see the late policy details of your assignments&lt;br /&gt;
##The late policy works correctly if you submit your assignment late&lt;br /&gt;
#When logging in as an instructor:&lt;br /&gt;
##There is a button to navigate you to the page showing all the late policies&lt;br /&gt;
##You can see the details of the late policy when creating or editing an assignment&lt;br /&gt;
##The &amp;quot;back&amp;quot; button will lead to a correct webpage when creating or editing an assignment&lt;br /&gt;
##The &amp;quot;Apply penalty policy&amp;quot; box is saved after submitting the form when creating or editing an assignment&lt;br /&gt;
&lt;br /&gt;
=== RSpec Unit Tests ===&lt;br /&gt;
'''''Test cases provided here, will add RSpec code blocks for the final submission'''''&lt;br /&gt;
*Student Waitlist&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting added to the waitlist for a topic &lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The topic for an assignment has no available slots&lt;br /&gt;
   And: Student tries to signup for a topic&lt;br /&gt;
  Then: The team that the student is a part of should be added to the waitlist for the topic.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting enrolled in a topic &lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The topic for an assignment has available slots&lt;br /&gt;
   And: Student tries to signup for a topic&lt;br /&gt;
  Then: The team that the student is a part of should be enrolled for the topic.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: All waitlisted topics getting dropped&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: Student gets enrolled into a course for which he was waitlisted before.&lt;br /&gt;
  Then: The team that the student is a part of should be dropped from the remaining waitlisted topics.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: All waitlisted teams getting dropped&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The deadline for a topic passes.&lt;br /&gt;
  Then: All the waitlisted teams for that particular topic must be dropped.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting enrolled in a topic&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The enrolled team for a topic drops&lt;br /&gt;
  Then: The team that was waitlisted earlier for the topics must be enrolled.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regression Testing ===&lt;br /&gt;
''In order to ensure complete coverage, testing of the changes done between the end of last semester and this project will be done to ensure that ''&lt;br /&gt;
''old test cases still pass.''&lt;br /&gt;
&lt;br /&gt;
# Make sure all existing waitlist functionality still passes&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza/tree/beta GitHub Repository]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144718</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144718"/>
		<updated>2022-04-11T22:19:03Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Project Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - After checking the &amp;quot;Apply penalty policy&amp;quot; box and clicking the 'save' or 'create' button on the Due dates tab, the box is unchecked on page refresh.&lt;br /&gt;
[[File:Issue 3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
* '''Issue 7''' - Adding test cases to check the late policy applied actually works to subtract points from the students.&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:517_Final_flow_chart.drawio.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Files and methods to be refactored ===&lt;br /&gt;
&lt;br /&gt;
#Issue 1&lt;br /&gt;
We need to check how to store assignment information into session and fix it.&lt;br /&gt;
##app/views/late_policies/new.html.erb&lt;br /&gt;
##app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
##app/controllers/assignments_controller.rb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Issue 2&lt;br /&gt;
##app/views/late_policies/new.html.erb&lt;br /&gt;
##app/views/assignments/edit/_due_dates.html.erb&lt;br /&gt;
##app/controllers/assignments_controller.rb&lt;br /&gt;
We need to check how to store assignment information into session and fix it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sign_up_sheet_controller.rb&lt;br /&gt;
##switch_original_topic_to_approved_suggested_topic&lt;br /&gt;
###Change usage of is_waitlisted attribute in the signed_up_teams table to use the new table&lt;br /&gt;
###Add additional checks and transactions to make sure perform operations in an atomic way in case of failures.&lt;br /&gt;
#sign_up_sheet.rb&lt;br /&gt;
##cancel_all_wailists (typo in code) - This method currently does 2 things, it cancels waitlist and also updates the signed_up_team topic which needs to be split&lt;br /&gt;
##create_SignUpTeam&lt;br /&gt;
###It checks if topic has slots if yes it adds to signed up team, else creates a signup as waitlist&lt;br /&gt;
###This method should use the new table and call the helper functions of waitlist to perform actions on waitlists&lt;br /&gt;
#sign_up_topic.rb&lt;br /&gt;
##users_on_waiting_list - Move method to fetch all users on waitlist for a topic to waitlist_teams method.&lt;br /&gt;
##assign_to_first_waiting_team - The same functionality is being called in multiple places, it should be made DRY and moved to the waitlist_teams model&lt;br /&gt;
##reassign_topic - Use methods that perform actions on waitlist that should be moved to waitlist_helper, also use transactions to make it atomic.&lt;br /&gt;
##update_waitlisted_users - Move method to waitlist_teams model and use the new table&lt;br /&gt;
##find_slots_waitlisted - Move method to waitlist_teams model&lt;br /&gt;
##find_waitlisted_topics - Move method to waitlist_teams model&lt;br /&gt;
#suggestion_controller.rb&lt;br /&gt;
##notification&lt;br /&gt;
##Clean waitlist functionality should be moved to a method in waitlist_teams model. team id should be passed as a parameter to delete the waitlist for that team.&lt;br /&gt;
#invitation.rb&lt;br /&gt;
##remove_waitlists_for_team&lt;br /&gt;
###Removing from waitlist and adding to team to sign up should be as a single transaction&lt;br /&gt;
###There should be additional checks to make sure that there is enough space left before adding team to signed_up_sheet&lt;br /&gt;
###All functionality should be moved to waitlist_helper and implemented in a robust and dry manner&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
=== Testing Goals and Test Objects ===&lt;br /&gt;
&lt;br /&gt;
#When logging in as a student:&lt;br /&gt;
##You can see the late policy details of your assignments&lt;br /&gt;
##The late policy works correctly if you submit your assignment late&lt;br /&gt;
#When logging in as an instructor:&lt;br /&gt;
##There is a button to navigate you to the page showing all the late policies&lt;br /&gt;
##You can see the details of the late policy when creating or editing an assignment&lt;br /&gt;
##The &amp;quot;back&amp;quot; button will lead to a correct webpage when creating or editing an assignment&lt;br /&gt;
##The &amp;quot;Apply penalty policy&amp;quot; box is saved after submitting the form when creating or editing an assignment&lt;br /&gt;
&lt;br /&gt;
=== RSpec Unit Tests ===&lt;br /&gt;
'''''Test cases provided here, will add RSpec code blocks for the final submission'''''&lt;br /&gt;
*Student Waitlist&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting added to the waitlist for a topic &lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The topic for an assignment has no available slots&lt;br /&gt;
   And: Student tries to signup for a topic&lt;br /&gt;
  Then: The team that the student is a part of should be added to the waitlist for the topic.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting enrolled in a topic &lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The topic for an assignment has available slots&lt;br /&gt;
   And: Student tries to signup for a topic&lt;br /&gt;
  Then: The team that the student is a part of should be enrolled for the topic.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: All waitlisted topics getting dropped&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: Student gets enrolled into a course for which he was waitlisted before.&lt;br /&gt;
  Then: The team that the student is a part of should be dropped from the remaining waitlisted topics.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: All waitlisted teams getting dropped&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The deadline for a topic passes.&lt;br /&gt;
  Then: All the waitlisted teams for that particular topic must be dropped.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario: Getting enrolled in a topic&lt;br /&gt;
 Given: Logged in as a Student&lt;br /&gt;
  When: The enrolled team for a topic drops&lt;br /&gt;
  Then: The team that was waitlisted earlier for the topics must be enrolled.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regression Testing ===&lt;br /&gt;
''In order to ensure complete coverage, testing of the changes done between the end of last semester and this project will be done to ensure that ''&lt;br /&gt;
''old test cases still pass.''&lt;br /&gt;
&lt;br /&gt;
# Make sure all existing waitlist functionality still passes&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza/tree/beta GitHub Repository]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144058</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144058"/>
		<updated>2022-04-05T01:55:13Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Project Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
[[File:Issue 3.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:517_Final_flow_chart.drawio.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza/tree/beta GitHub Repository]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144056</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144056"/>
		<updated>2022-04-05T01:53:15Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Project Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
[[File:Issue 3.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:517_Final_flow_chart.drawio.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza/tree/beta GitHub Repository]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144043</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144043"/>
		<updated>2022-04-05T01:00:29Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* E2236 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
[[File:Issue 3.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:Rsz late policy.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza/tree/beta GitHub Repository]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144042</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144042"/>
		<updated>2022-04-05T00:58:44Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* E2236 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
[[File:Issue 3.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:Rsz late policy.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2236===&lt;br /&gt;
#[https://github.com/517-E2236/expertiza GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144040</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144040"/>
		<updated>2022-04-05T00:54:25Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Problem Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
[[File:Issue 3.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:Rsz late policy.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2157===&lt;br /&gt;
#[https://github.com/wshubham/expertiza/tree/beta GitHub forked repository]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/2127 Pull Request]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144036</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144036"/>
		<updated>2022-04-05T00:51:45Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Problem Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
[[File:Issue 3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
[[File:Issue 4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
[[File:Issue 5.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
[[File:Issue 6.png]]&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:Rsz late policy.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2157===&lt;br /&gt;
#[https://github.com/wshubham/expertiza/tree/beta GitHub forked repository]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/2127 Pull Request]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144033</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144033"/>
		<updated>2022-04-05T00:46:46Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Issues with the Current Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
[[File:Issue 1.jpg|1400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:Rsz late policy.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2157===&lt;br /&gt;
#[https://github.com/wshubham/expertiza/tree/beta GitHub forked repository]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/2127 Pull Request]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144026</id>
		<title>CSC/ECE 517 Spring 2022 - E2236: Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2236:_Fix_issues_related_to_deadlines_and_late_policies&amp;diff=144026"/>
		<updated>2022-04-05T00:39:53Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Problem Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
The following issues have been raised in the current implementation:&lt;br /&gt;
* '''Issue 1''' - When creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - There is also no indication of this penalty policy for students, and no proof it actually works &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - The &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater do not work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 5''' - No Botton navigating to the list of all late policies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Issue 6''' - When creating/editing an assignment, you can’t see the detail of each late policy&lt;br /&gt;
&lt;br /&gt;
====Refactoring and Design Patterns====&lt;br /&gt;
Since our goal is to fix existing functionalities we will not be updating the existing design patterns being employed in the code. Yet, we would like to discuss what makes these refactoring important. Refactoring is a systematic process of improving code without creating new functionality. Thus, a key to the success of our project is ensuring everything that was working before our changes work even after our changes have been added. To ensure this, we will continue to test the system after each issue has been fixed. This will allow us to ensure two things:&lt;br /&gt;
&lt;br /&gt;
* We are only changing what we set out to change when fixing a particular issue.&lt;br /&gt;
* We are not breaking what was working before we deployed our fix.&lt;br /&gt;
&lt;br /&gt;
We believe at the end our changes will increase the quality of Expertiza and improve the experience for users an developers alike.&lt;br /&gt;
&lt;br /&gt;
==Project Scope==&lt;br /&gt;
[[File:Rsz late policy.png|600px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
All the issues raised mainly exist in the &amp;quot;Due Dates&amp;quot; tab on the &amp;quot;Edit Assignment&amp;quot; page.&lt;br /&gt;
* '''Issue 1''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 2''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 3''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 4''' - Analyze and fix required function and write appropriate test cases (late_policies_controller.rb).&lt;br /&gt;
* '''Issue 5''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Issue 6''' - Analyze and fix required function and write appropriate test cases (app/views/late_policies).&lt;br /&gt;
* '''Test cases''' - Write new test cases for late_policies_controller.rb and late_policy.rb.&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
* Nicholas Himes&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Zhiyuan Ma&lt;br /&gt;
&lt;br /&gt;
* Gaolin Zhang&lt;br /&gt;
&lt;br /&gt;
* Zhijin Yang&lt;br /&gt;
&lt;br /&gt;
* Yuyang Jiang&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2157===&lt;br /&gt;
#[https://github.com/wshubham/expertiza/tree/beta GitHub forked repository]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/pull/2127 Pull Request]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143477</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143477"/>
		<updated>2022-03-22T01:45:17Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Here is the link for the screenshots of the coverage:&lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions Controller Test Coverage]  &lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IwDWIcy.png Participants Controller Test Coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
[https://github.com/expertiza/expertiza/pull/2289 The pull request]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jiangyy12/expertiza/tree/beta The forked git repository ]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/file/d/1X5AS8-cETX-60j6qzIovXsKADGMZiBtu/view?usp=sharing Test video ]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143476</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143476"/>
		<updated>2022-03-22T01:44:27Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Here is the link for the screenshots of the coverage:&lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions Controller Test Coverage]  &lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IwDWIcy.png Participants Controller Test Coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;br /&gt;
&lt;br /&gt;
Test video [https://drive.google.com/file/d/1X5AS8-cETX-60j6qzIovXsKADGMZiBtu/view?usp=sharing]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143471</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143471"/>
		<updated>2022-03-22T01:29:07Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
Here is the link for the screenshots of the coverage:&lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions Controller Test Coverage]  &lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IwDWIcy.png Participants Controller Test Coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143466</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143466"/>
		<updated>2022-03-22T01:22:58Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions Controller Test Coverage]  &lt;br /&gt;
&lt;br /&gt;
[https://i.imgur.com/IwDWIcy.png Participants Controller Test Coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143465</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143465"/>
		<updated>2022-03-22T01:22:51Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions Controller Test Coverage]  &lt;br /&gt;
[https://i.imgur.com/IwDWIcy.png Participants Controller Test Coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143464</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143464"/>
		<updated>2022-03-22T01:22:34Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions Controller Test Coverage]&lt;br /&gt;
[https://i.imgur.com/IwDWIcy.png Participants Controller Test Coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143463</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143463"/>
		<updated>2022-03-22T01:21:08Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png Versions controller test coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143462</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143462"/>
		<updated>2022-03-22T01:20:04Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png versions controller test coverage]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143461</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143461"/>
		<updated>2022-03-22T01:19:44Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[https://i.imgur.com/IYDSPU3.png]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143460</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143460"/>
		<updated>2022-03-22T01:19:10Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. update_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#update_authorizations' do&lt;br /&gt;
    it 'updates the authorizations for the participant' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(response).to redirect_to('/participants/list?id=1&amp;amp;model=Assignment')&lt;br /&gt;
    end&lt;br /&gt;
    it 'updates the authorizations fails' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'participant', id: 1 }&lt;br /&gt;
      session = { user: student }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'A student is not allowed to update_authorizations this/these participants'&lt;br /&gt;
      expect(response).to redirect_to('/')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. change_handle&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#change_handle' do&lt;br /&gt;
    it 'changes the handle of the participant' do&lt;br /&gt;
      allow(AssignmentParticipant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { id: 1, participant: { handle: 'new_handle' } }&lt;br /&gt;
      session = { user: student1 }&lt;br /&gt;
      xhr :get, :change_handle, params, session&lt;br /&gt;
      expect(response).to have_http_status(200)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. view_copyright_grants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#view_copyright_grants' do&lt;br /&gt;
    it 'renders the copyright_grants template' do&lt;br /&gt;
      allow(Assignment).to receive(:find).with('1').and_return(assignment)&lt;br /&gt;
      params = { id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :view_copyright_grants, params, session&lt;br /&gt;
      expect(response).to render_template('view_copyright_grants')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. validate_authorizations&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#validate_authorizations' do&lt;br /&gt;
    # Test case for successful update of participant to reviewer, expects the success flash message after role is updated.&lt;br /&gt;
    it 'updates the authorizations for the participant to make them reviewer' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:success]).to eq 'The role of the selected participants has been successfully updated.'&lt;br /&gt;
      expect(participant.can_review).to eq(true)&lt;br /&gt;
      expect(participant.can_submit).to eq(false)&lt;br /&gt;
      expect(participant.can_take_quiz).to eq(false)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Test for case where we expect to encounter an error in update_attributes method&lt;br /&gt;
    it ' throws an exception while validating authorizations' do&lt;br /&gt;
      allow(Participant).to receive(:find).with('1').and_return(participant)&lt;br /&gt;
      allow(participant).to receive(:update_attributes).and_raise(StandardError)&lt;br /&gt;
      params = { authorization: 'reviewer', id: 1 }&lt;br /&gt;
      session = { user: instructor }&lt;br /&gt;
      get :update_authorizations, params, session&lt;br /&gt;
      expect(flash[:error]).to eq 'The update action failed.'&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. get_user_info&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_user_info' do&lt;br /&gt;
    it 'gives the user information from the the team user' do&lt;br /&gt;
      allow(assignment).to receive(:participants).and_return([participant])&lt;br /&gt;
      allow(participant).to receive(:permission_granted?).and_return(true)&lt;br /&gt;
      allow(participant).to receive(:user).and_return(student)&lt;br /&gt;
      allow(student).to receive(:name).and_return('name')&lt;br /&gt;
      allow(student).to receive(:fullname).and_return('fullname')&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_user_info, student, assignment)).to eq(name: 'name', fullname: 'fullname', pub_rights: 'Granted', verified: false)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. get_signup_topics_for_assignment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#get_signup_topics_for_assignment' do&lt;br /&gt;
    it 'gives the signup topics for assignment' do&lt;br /&gt;
      pc = ParticipantsController.new&lt;br /&gt;
      expect(pc.send(:get_signup_topics_for_assignment, topic.assignment.id, topic, signed_up_team.team_id)).to eq(true)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
[[File:P.png]]&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:P.png&amp;diff=143459</id>
		<title>File:P.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:P.png&amp;diff=143459"/>
		<updated>2022-03-22T01:18:26Z</updated>

		<summary type="html">&lt;p&gt;Zma24: Zma24 uploaded a new version of File:P.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143449</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143449"/>
		<updated>2022-03-22T01:06:36Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Test for Versions Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'redirect to search' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143448</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143448"/>
		<updated>2022-03-22T01:06:13Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Test for Versions Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
1. controller_locale - This is to test the function 'controller_locale' which is to search the courses' locale of current user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
describe '#controller_locale' do&lt;br /&gt;
    it 'should return I18n.default_locale' do&lt;br /&gt;
      user = student&lt;br /&gt;
      stub_current_user(user, user.role.name, user.role)&lt;br /&gt;
      expect(controller.send(:controller_locale)).to eq(I18n.default_locale)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed? - This is the first method that would be called when a user is accessing the version controller. This method ensures that only the users with admin privileges can assess the features.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index - This method is to display the versions with given id with 25 records each page&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. show&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /show' do&lt;br /&gt;
    it 'render show' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      allow(Version).to receive(:find).with('1').and_return(version)&lt;br /&gt;
      get 'show', id: 1&lt;br /&gt;
      expect(response).to render_template('show')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. search - This method is called to search the versions records of given user id&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143409</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143409"/>
		<updated>2022-03-22T00:16:22Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Test for Versions Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. search&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /search' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      params = { id: 3 }&lt;br /&gt;
      get 'search', params&lt;br /&gt;
      expect(response).to be_success&lt;br /&gt;
    end&lt;br /&gt;
    it 'should render search template' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'search'&lt;br /&gt;
      expect(response).to render_template('search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143408</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143408"/>
		<updated>2022-03-22T00:15:56Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Test for Versions Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. index&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe 'GET /index' do&lt;br /&gt;
    it 'returns http success' do&lt;br /&gt;
      stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
      get 'index'&lt;br /&gt;
      expect(response).to redirect_to('/versions/search')&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143404</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143404"/>
		<updated>2022-03-22T00:13:49Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Test for Versions Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143403</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143403"/>
		<updated>2022-03-22T00:13:39Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Test for Versions Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
In participants controller had some methods not tested, also some edge cases not included in the previous test work. And There were no tests for the versions controller. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
1. action_allowed?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  describe '#action_allowed?' do&lt;br /&gt;
    context 'when user does not have right privilege, it denies action' do&lt;br /&gt;
      it 'for no user' do&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for student' do&lt;br /&gt;
        allow(controller).to receive(:current_user).and_return(build(:student))&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
      it 'for instructor' do&lt;br /&gt;
        stub_current_user(instructor, instructor.role.name, instructor.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be false&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    context 'when user has right privilege, it allows action' do&lt;br /&gt;
      it 'for admin' do&lt;br /&gt;
        stub_current_user(admin, admin.role.name, admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
      it 'for super_admin' do&lt;br /&gt;
        stub_current_user(super_admin, super_admin.role.name, super_admin.role)&lt;br /&gt;
        expect(controller.send(:action_allowed?)).to be true&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test for Participants Controller====&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143379</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143379"/>
		<updated>2022-03-21T23:50:14Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Analysis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
Participants controller and versions controller had some methods not tested, also some edge cases not included in the previous test work. Our aim is to test all the methods in these two controllers and try to cover more edge cases when testing them.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== Test for Versions Controller====&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143357</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143357"/>
		<updated>2022-03-21T23:35:23Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Running Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rspec ./spec/controllers/participants_controller_spec.rb&lt;br /&gt;
rspec ./spec/controllers/versions_controller_spec.rb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test Execution ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143354</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143354"/>
		<updated>2022-03-21T23:33:12Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test Execution ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
The pull request [https://github.com/expertiza/expertiza/pull/2289]&lt;br /&gt;
&lt;br /&gt;
The forked git repository [https://github.com/jiangyy12/expertiza/tree/beta]&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143352</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143352"/>
		<updated>2022-03-21T23:31:27Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Description about project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test Execution ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143346</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143346"/>
		<updated>2022-03-21T23:24:32Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Files Involved */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test Execution ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143345</id>
		<title>CSC/ECE 517 Spring 2022 - E2205: Testing for participants controller, versions controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2022_-_E2205:_Testing_for_participants_controller,_versions_controller&amp;diff=143345"/>
		<updated>2022-03-21T23:24:08Z</updated>

		<summary type="html">&lt;p&gt;Zma24: /* Files Involved */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Expertiza==&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is the software benefits for both instructors and students by supporting various types of submissions and providing reusable objects for peer review. It is an open-source project based on [http://rubyonrails.org/ Ruby on Rails] framework. It allows the instructors not only to create and customize new or existing assignments but also to create a list of topics the students can sign up for. Students can form teams to work on various projects and assignments. Expertiza also lets students peer-review other students' submissions, enabling them to work together to improve others' learning experiences.&lt;br /&gt;
&lt;br /&gt;
== Description about project ==&lt;br /&gt;
This page is a description of Expertiza OSS project E2205 which is testing for participants_controller and versions_controller &lt;br /&gt;
&lt;br /&gt;
=== Files Involved ===&lt;br /&gt;
* versions_controller_spec.rb&lt;br /&gt;
* participants_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
=== Running Tests ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test Execution ===&lt;br /&gt;
&lt;br /&gt;
=== Conclusion ===&lt;/div&gt;</summary>
		<author><name>Zma24</name></author>
	</entry>
</feed>